Coder Social home page Coder Social logo

raven-os / nbuild Goto Github PK

View Code? Open in Web Editor NEW
10.0 5.0 3.0 179 KB

An automated package builder for lazy maintainers

Home Page: https://docs.raven-os.org/p/nbuild/master/

Dockerfile 0.28% Python 99.72%
package-manager-tool raven python nest package-manager package manifest build-tool build-system build

nbuild's Introduction

Nest Build

An automated package builder for lazy maintainers.

Dependencies

Nest build requires python3.6+. To install its dependencies, run

$ pip install -r requirements.txt

How it works

Nest build uses a python file (called a build manifest) to describe how the compilation should be performed. The build manifest downloads the source code of a software, compiles it and splits it into multiple packages. All of this is done thanks to a powerful library included in nest build: the standard compilation library. This library automates all the hard tasks while still providing a great granularity of modifications regarding those automated tasks.

Examples of build manifests can be found in the nbuild-manifests repository.

Documentation

The documentation of the standard compilation library is hosted here, but it can also be locally generated with the following commands:

$ pip install -r docs/requirements.txt
$ sphinx-apidoc -f --separate -o docs/source/ .
$ make -C docs html

The main page can be accessed at docs/build/html/index.html.

nbuild's People

Contributors

arignir avatar bourgoismickael avatar doom avatar melis-m avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nbuild's Issues

Tracking issue for multiple packages per build manifest

Check list:

  • Find a syntax to indicate the different built packages
  • Use the same repository to build the different packages
  • Create different data.tar.gz and manifest.toml per package, in their correct folder.

The typical use case is mylib and mylib-dev, containing the headers and documentation for mylib. We want both of them to be created from the very same build to ensure they are 100% compatible with each other.

Tracking issue for the Compilation Standard Library

Tracking issue for the Compilation Standard Library:

  • Prelude
  • Provide an abstraction for a Build Manifest, a Package and a Build
  • Provide functions to fetch a file, patch the source tree and execute commands.
  • Provide the autootols template
  • Generate the name of packages automatically
  • Manage packages' dependencies automatically
  • Ensure the libraries are executable
  • Install build dependencies building the package
  • Support the creation of different packages from a single build manifest (See #11 )

Tracking issue for automated validity check resolver

Add a way to allow resolving of problems found by the checker

Modes:

  • Show a diff between the actual and a recommendation
  • Automatically resolve (and show how) all problems
  • Allow manual editing of the problem

Problems:

  • File permissions
  • Files are not in the correct split
  • Invalid description
  • Invalid dependencies
  • Missing dependencies
  • Files not in correct folder

Tracking issue for automated validity checks

Checklist:

  • Move checker to new executable instead of using flags to nbuild
  • All binaries are executable
  • All libraries are executable
  • Files are in the correct split
  • Package ID and description are valid
  • Dependencies exist
  • All needed dependencies are listed
  • All libraries are in /lib64 and not in /lib
  • /lib should (almost) never be used
  • No files from different packages share the same path

Documenting the `revamp` branch.

The revampbranch contains a lot of the new code of nbuild.

The idea is to move the content of revamp to master while documenting it, step by step.

Fix draining of directories already existing in the package

During a build, if we drain a directory a_dir/a_subdir, and the package already contains such a directory, the drained directory will be placed at a_dir/a_subdir/a_subdir, which seems highly unintuitive.

IMO, the expected behavior would rather be to merge the two directories.

Tracking issue for Docker image

Checklist:

  • Compile the necessary packages on the host
    • Essentials
    • Nest
    • nbuild
  • Create a Docker image from these
  • Recompile the necessary packages from the docker container
  • Recreate a Docker image from these packages
  • Recompile the necessary packages from the docker container
  • Recreate a Docker image from these packages

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.