Comments (3)
I have also thought multiple times about having Cabal_3_10_x or Cabal_3_10 or also Cabal_latest.
from cabal2nix.
I think there are a couple of problems with this kind of stuff.
- It of course will increase file size a lot, especially if any kind of expectation about the presence of these attributes is introduced.
- The question is how far we should go with this. Should we solve #568 as well? hackage2nix seems slow enough as it is already…
I remember @peti usually replying that how cumbersome working with non-standard version is partially intentional. It should be a last resort if it is not possible to get the desired package(s) to build otherwise. Usually the busywork can be solved by a very simple search and replace on nixpkgs (I use amber
). With fancier attribute semantics this may stop being possible.
OTOH it seems to me that the amount of versioned overrides necessary has increased which is pretty infuriating. With increased activity on core tools like cabal-install
liberal version constraints have kind of fallen overboard. I'd also guess that the death of cabal hell thanks to the new style cabal builds has made supporting Stackage LTS less of a priority.
from cabal2nix.
I agree that when version bounds change, we have to do a lot of busy work. It is really annoying.
I like the idea of having additional attributes for packages, like the proposed:
Cabal_3_10_x = self.Cabal_3_10_2_1;
As you may know, a year ago or so we added aliases for ghc versions, so now attributes are available like haskell.packages.ghc92
, which would be an alias to haskell.packages.ghc928
(or whatever the latest GHC-9.2 version is at that time).
I'm wondering if you could be more specific about how you'd expect the Nixpkgs Haskell stuff would change, as well as hackage2nix
(which I think you're implying would have to change).
For instance:
- Would the
pkgs/development/haskell-modules/hackage-packages.nix
get a bunch of additional attributes? hackage2nix
would be responsible for generating these? (it sounds like you may be suggesting that these attributes would take a non-standard format, and potentially live in a different file)- What sort of algorithm would
hackage2nix
use to figure out what additional attributes? It sounds like you're suggesting that the version ranges required by packages depending on packagefoo
should be used to determine which attributes to generate for packagefoo
. - Users sometimes complain that the Haskell stuff in Nixpkgs is "too big". How many additional attributes would there be in practice? Would these additional attributes have some negative affect on space or performance?
from cabal2nix.
Related Issues (20)
- Map `extra-libraries: FLAC` to pkgs.flac HOT 4
- latest library doesn't pull in other latest library
- do not encourage use of `nix-env` HOT 1
- Confusing output when using --subpath in conjunction with a source that needs to be unpacked
- Improve tooling for making a new release
- Add --disable-library-profiling option HOT 2
- `posix_spawnp: illegal operation` HOT 1
- Support for GitHub/GitLab PR URLs HOT 1
- Add warning redirecting to nixpkgs manual at the top of every readthedocs page
- Get pkg-config dependencies from `pkg-configPackages` HOT 5
- Don't set mainProgram when it matches pname HOT 1
- Component-based build support for `cabal2nix` HOT 5
- Removing `configureCabalFlags` completely HOT 1
- Invalid Nix is generated for a .cabal file that has the `if` package as a dependency HOT 1
- Generate `meta.longDescription` HOT 2
- Support single-file Haskell script HOT 3
- Pulling from darcs zip file results in unpacking failure. HOT 1
- Status of the repository? HOT 2
- Adding pkgconfig-depends: hdf5 pulls in Haskell's hdf5, not system hdf5 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cabal2nix.