Comments (3)
I'm a bit reticent to bring back granular control of product-dependency declarations... this was the state of the world back in the 2.x series of sls-packaging, but we found that people would frequently declare a product dependency that may have been correct at one point, but would quickly become stale and out of sync with the actual method calls.
We did the whole 3.X major rev to get rid of that behaviour and switch to inferring everywhere.
How feasible would it be to fix the embedded product dependencies upstream?
from sls-packaging.
The situation I have is product A depends on product B where B has both a 1.x and 2.x, with 2.x backwards compatible but also includes new APIs. Migrating all installations of product B to 2.x is happening over time but today 1.x is a valid supported version so the dependency range is min:1.x, max 2.x. Internally product A compiles against the 2.x libraries in order to make use of the new APIs and guards at runtime whether it is taking to 1.x or 2.x of product B. Because product A compiles against 2.x, sls-packaging sets the min:2.x, meaning installations of 1.x are considered invalid.
I can't quite see how to resolve that but open to options.
from sls-packaging.
On the producer side, consider creating an (additional) api jar that does not embed its product dependency mapping, and in projects where you manage the dependency ranges yourself, depend on the nodep (variant of the) jar.
from sls-packaging.
Related Issues (20)
- Differing classloaders can cause distribution plugins to miss dependency recommendations from within the repository HOT 2
- Locking asset configuration with GCV does not work if subprojects define their own repos
- Distribution tarballs contain bogus empty go-init and go-java-launcher directories
- Allow a library to mark a dep as optional HOT 1
- Increase default JFR stack depth beyond the default (conservative) 64 frames
- Use Async JVM Unified Logging on JDK 17+ HOT 1
- Enable UseStringDeduplication where feasible HOT 1
- Add validation to add a service dependency for new conjure projects
- Generate a product-dependencies.lock file for Recommended Product Dependencies Plugin
- productDependencies configuration might be broken with $project versions HOT 1
- Use 'hybrid' as default with java 11 and shenandoah with java 12
- var/log and var/run not created in distributions HOT 1
- sls-packaging Default JVM arguments are not applied in launcher scripts
- Implicit dependency on latest Gradle HOT 1
- Remove product dependency warning if higher version
- Overriding init.sh results in two init.sh headers in the sls.tgz HOT 5
- Remove gradle workaround HOT 1
- createManifest "succeeds" when ran with mismatched version of Java HOT 2
- Cannot easily override GC settings via configuration HOT 3
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 sls-packaging.