GithubHelp home page GithubHelp logo

leif / ngipkgs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ngi-nix/ngipkgs

0.0 0.0 0.0 4.61 MB

Nix packages and services for projects supported through the NGI program

Home Page: https://nlnet.nl/project/current.html

License: MIT License

Shell 0.48% Python 2.38% CSS 0.07% Nix 95.68% HCL 1.27% sed 0.11%

ngipkgs's Introduction

NGIpkgs

Nix packages, NixOS modules and example NixOS configurations of software projects funded by the Next Generation Internet (NGI) initiative of the European Commission.

Structure of NGIpkgs

The software in NGIpkgs can be divided into two broad categories: Nix packages, and NixOS modules.

.
├── flake.nix
├── pkgs
│   └── by-name
│       └── …            # directories of packages
├── projects
│   ├── <project-name>   # names matching those at https://nlnet.nl/project
│   │   ├── default.nix  # project definition
│   │   └── …            # files of the project (e.g. NixOS module, configuration, tests, etc.)
│   └── default.nix      # imports all projects 
├── README.md            # this file
└── …

Nix packages can theoretically be built and run on any operating system that runs Nix. The output of building a Nix package is often a library or executable, including its dependencies. In NGIpkgs, these packages are all contained in the pkgs directory. For simple package definitions, we use pkgs/by-name/<pname>/package.nix, inspired by Nix RFC 140.

Corresponding to projects funded by NGI trough NLnet there are per-project subdirectories within the projects directory. These per-project directories contain a default.nix which

  • Picks packages associated with the project from those defined in pkgs and Nixpkgs,
  • Exposes NixOS modules, tests, and configurations which are also contained in the per-project directory,
  • May contain additional metadata about the project.

NixOS modules are components that can be easily integrated into a NixOS configuration. Many of them represent services that map to one or more systemd services that are designed to run on NixOS. These modules are ready to be deployed to a NixOS system, such as a container, virtual machine, or physical machine. Example configurations found in the corresponding per-project directory are a good starting point for anyone interested in using these modules, and are sure to work because they are also used for testing.

Continuous builds of packages with Hydra

All packages in the main branch of NGIpkgs are automatically built by a Hydra server. The results of these builds can be found at https://hydra.ngi0.nixos.org/jobset/ngipkgs/main#tabs-jobs

Reasoning for creation of the NGIpkgs monorepo

  • Users can discover NGI projects on an overview page and use them immediately.
  • Many software packages are research projects that would not make sense to distribute through Nixpkgs.
  • The developers get a unified code structure, CI & CD tooling, and a common pull request and issue tracker which facilitates reviews.
  • The funding organizations get an overview of the packaging situation.

Contributing to NGIpkgs

Please see CONTRIBUTING.md

ngipkgs's People

Contributors

lorenzleutgeb avatar edolstra avatar bryanhonof avatar mightyiam avatar wegank avatar alejandrosame avatar fricklerhandwerk avatar cleeyv avatar ericson2314 avatar matusf avatar albertchae avatar augustebaum avatar jfly avatar github-actions[bot] avatar jasonodoom avatar grahamc avatar picnoir avatar chickensoupwithrice avatar jleightcap avatar mweinelt avatar garbas avatar andres-nav avatar delroth avatar r0hit05 avatar zimbatm avatar kubaneko avatar 999eagle avatar rbvermaa avatar fufexan avatar enzime 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.