JuliaCN / Julia2Nix.jl

The Nix interface to Julia Ecosystem [maintainer=@GTrunSec]
http://cn.julialang.org/Julia2Nix.jl/
MIT License
38 stars 8 forks source link

Refactor discussion #62

Open GTrunSec opened 1 year ago

GTrunSec commented 1 year ago

Julia2nix not only serves as a Nix library for building Julia projects but also provides interfaces for the DevOps and Software Development Life Cycle (SDLC) revolving around Julia projects, offering the best development experience for Julia developers. Based on the extensive work done in PR https://github.com/NixOS/nixpkgs/pull/225513, here are some ideas for refactoring and simplifying julia2nix:

  1. Utilize https://github.com/codedownio/General to require the hash value for each package.
  2. Remove the dependence of nix-prefetch in julia2nix(
  3. Refactor julia2nix to establish compatibility with https://github.com/SamuraiAku/PkgToSoftwareBOM.jl.
  4. Add a building option in julia2nix to generate reports, which is provided by https://juliaecosystem.github.io/PackageAnalyzer.jl/dev/.
  5. Restructure the Nix library interface in julia2nix with a similar implementation to https://github.com/GTrunSec/omnibus/blob/main/flake.nix, aiming for a streamlined Nix library introduction(without transitive inputs).
  6. (automation): Parse Artifacts to generate information related to nixpkgs and Julia Artifacts, aiding the replacement of nixpkgs with Artifacts.
  7. Introduce multi-system support for building Julia projects.
  8. (Further) Incorporate functions in julia2nix, similar to those in https://github.com/nix-community/go-nix, enabling julia2nix.jl to parse Nix-related elements.

building optimize

image

APIs namespace