Giter Club home page Giter Club logo

orchestra's Introduction

rev.ng orchestra configuration

This repository contains the orchestra configuration for rev.ng.

Bootstrap

  • Clone orchestra
    git clone https://github.com/revng/orchestra
    cd orchestra
  • Install dependencies (currently Ubuntu-only):
    ./.orchestra/ci/install-dependencies.sh
  • Install orchestra script
    pip3 cache remove orchestra
    pip3 install --user --force-reinstall https://github.com/revng/revng-orchestra/archive/master.zip
  • Make sure orc is in PATH
    export PATH="$HOME/.local/bin:$PATH"
  • Initialize default configuration (and list components)
    orc components

Virtualenv

If you do not want to install orchestra globally, you can use a virtualenv.

  • Create and activate a virtualenv
    python3 -m venv venv
    source venv/bin/activate
  • Install and upgrade wheel inside the virtualenv
    pip install --upgrade pip wheel
  • Install orchestra
    pip cache remove orchestra
    pip install --force-reinstall https://github.com/revng/revng-orchestra/archive/master.zip
  • Install dependencies (Ubuntu only)
    ./.orchestra/ci/install-dependencies.sh

Configuration for the public

The default configuration gives you read-only access to the rev.ng open source components.

If you want to work a fork of certain components the suggested workflow is to add your remote to the repository as cloned by orchestra. For example, to fork the revng project do the following:

# Ensure the revng component is cloned
orc clone revng
cd sources/revng
git remote add myremote <your-remote-url>

Configuration for rev.ng developers

If you have access to rev.ng GitLab, in order to access private components, your configuration should be similar to the following:

#@data/values
---
#@overlay/match missing_ok=True
remote_base_urls:
  - public: "[email protected]:revng"
  - private: "[email protected]:revng-private"

#@overlay/match missing_ok=True
binary_archives:
  - origin: "[email protected]:revng/binary-archives.git"
  - private: "[email protected]:revng-private/binary-archives.git"

Installing from binary-archives

  • Update binary-archives and information about remote repositories:
    orc update
  • Install revng
    orc install revng

Building from source

In order to build from source certain components, as opposed to fetch them from binary-archives, you need to list them in .orchestra/config/user_options.yml:

#@overlay/replace
build_from_source:
  - revng
  • Install and test revng
    orc install --test revng
  • Manually build:
    orc shell -c revng
    ninja
    ctest -j$(nproc)

Building from a fork

The recommended workflow is:

  • Clone the component you want to fork
    orc clone <component>
  • Add a remote to the component
    cd sources/<component>
    git remote add <myremotename> <remote-url>
    git fetch --all
  • Switch to your branch
    cd sources/<component>
    git switch <myremotename>/<branch>
    git checkout -b <branch> <myremotename>/<branch>
  • Update orchestra
    orc update

How do I...

  • Q: How do I set the number of parallel jobs for make/ninja?

    A: In .orchestra/config/user_options.yml:

    parallelism: 4
  • Q: How do I print the dependency graph to build a component?

    A: orc graph $COMPONENT | xdot -

  • Q: How do I uninstall a component?

    A: orc uninstall $COMPONENT

  • Q: Does orchestra leave files around my $HOME or elsewhere?

    A: No! By default orchestra places everything inside the folder containing the configuration

Writing components

See docs/writing_components.md.

orchestra's People

Contributors

aleclearmind avatar mrjackv avatar depau avatar pfez avatar dwarfyresearch avatar ztehryan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.