Comments (7)
@AshleyYakeley thank you for this suggestion. I doubt we'd want to relax the cleaning much. We treat packages as singular units as that is how packages from hackage, as well as sdist packaging works. Thus we detect the case of ill specified packages early and not late in the process when releases have to be cut.
Even if we allowed somehow to retain a file outside of the tree, where would that point to after unpacking the package into an isolated location? I'm not sure if hardlinks might help in your situation.
from haskell.nix.
A package from Hackage is indeed a singular unit, but it includes a cabal file. The source directory does not include a cabal file before hpack is run (e.g. via stack).
Another (better?) solution would be to do cleaning only after hpack has generated the cabal file.
Even if we allowed somehow to retain a file outside of the tree, where would that point to after unpacking the package into an isolated location?
It turns out that cleaning a subdirectory retains the subdirectory structure within the isolated location, so there's actually a place for files elsewhere in the tree.
from haskell.nix.
We already don't clean components if they are using hpack
, presumably to support this sort of thing: https://github.com/input-output-hk/haskell.nix/blob/master/builder/comp-builder.nix#L106
So something is going wrong there.
from haskell.nix.
I'm examining this with a local copy of haskell.nix. Adding in __trace
functions, I can see the canCleanSource
flag is correctly false
at that point. However, cleanSourceWith
gets called in various other places which will omit the file.
from haskell.nix.
@michaelpj, #1925 shows a small hack to work around this issue, just to get an idea of where the problematic cleaning is done.
from haskell.nix.
from haskell.nix.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from haskell.nix.
Related Issues (20)
- Shells are more prescriptive about using the installed packages
- Clarify method to update stack snaphost in docs
- Cabal patches fail to apply to 3.10.3 HOT 1
- Help using extraPkgconfigMappings HOT 2
- HLS 2.7.0.0 HOT 2
- Package builds with stack, doesn't build with haskell.nix HOT 2
- Non-existent ghc-boot-9.8.2 package referenced in stackage nightly nix file HOT 3
- OS-specific conditional dependencies are excluded from the package set during cross-compilation
- Typo in `nix-tools/nix-tools/cabal2nix/Main.hs` error
- Unexpected WARNING(s) when `compiler-nix-name = ghc96*`. HOT 1
- Can't create shell with cabal-fmt and GHC 9.10 HOT 3
- Set arch-native: False for hashable >= 1.4.5.0 HOT 2
- New git config safe.directory's default breaks support for source-repository-package HOT 4
- Cabal patches fail to apply to 3.10.3 HOT 2
- can't build ghc because recent nixpkgs lacks ghc962 HOT 6
- GHC 9.6.6 HOT 1
- Regression: Mingw-w64 runtime failure: 32 bit pseudo relocation
- Is cache.zw3rk.com down?
- Can't update boot packages with haskell.nix that can be updated fine with stack HOT 1
- warning: postgresql: argument enableSystemd is deprecated, please use systemdSupport instead.
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 haskell.nix.