Comments (6)
Since we defer to Gradle to resolve the dependency, maybe it is non-deterministic due to caching and repository ordering? I usually add --refresh-dependencies
so I wonder if that would make it more consistent for you, as it forces it to bypass the cache?
from gradle-versions-plugin.
I don't think it is gradle, because it is not a question of versions (at least for the first part). It is getting the correct versions for current and milestone versions, it is the projectUrl
from gradle-versions-plugin.
We actually get that from Gradle as well,
from gradle-versions-plugin.
Could there be a race condition ambiguity here whether it uses resolvedCoordinate or originalCoordinate
private fun getStatus(
coordinates: Map<Coordinate.Key, Coordinate>,
resolved: Set<ResolvedDependency>,
unresolved: Set<UnresolvedDependency>,
): Set<DependencyStatus> {
val result = hashSetOf<DependencyStatus>()
for (dependency in resolved) {
val resolvedCoordinate = Coordinate.from(dependency.module.id)
val originalCoordinate = coordinates[resolvedCoordinate.key]
val coord = originalCoordinate ?: resolvedCoordinate
val projectUrl = getProjectUrl(dependency.module.id)
result.add(DependencyStatus(coord, resolvedCoordinate.version, projectUrl))
}
from gradle-versions-plugin.
I believe the only shared mutable state in this plugin is the projectUrls
cache, which uses a precursor idiom to computeIfAbsent
as that was written in pre-Java 8 Groovy. The rest is thread local state, so assuming that the configuration is not modified at runtime it should be stable as computations passed down between methods. That's not always true as much of Gradle is mutable and allowed to change, e.g. #98 takes advantage of that. So your idea makes a lot of sense, but I don't think we could do much at the plugin level?
from gradle-versions-plugin.
All i am asking is to do a little debugging to see where it is happening. For example, putting some printlns to see if which version number is being used to call getProjectUrl and see if that is changing.
from gradle-versions-plugin.
Related Issues (20)
- Different result for CI/CD pipeline and local HOT 9
- Versions past 0.44.0 generate useless output in some repos HOT 21
- Dependency formatting output, new lines included? HOT 12
- Latest version of org.jetbrains.kotlin dependencies are not being found HOT 2
- Support for ignoring deliberately lagging dependencies HOT 5
- Sign plugin artifacts HOT 1
- Question: Display max minor and max overall versions? HOT 7
- Failed to determine the latest version for the following dependencies with Kotlin 2.0.0 HOT 15
- unable to discover latest version of google guava HOT 1
- outputFormatter setting has no effect - json, xml & txt report always generated HOT 2
- Plugin is downgrading versions HOT 1
- Legacy configurations should be skipped HOT 3
- Add Kotlin-DSL initscript example HOT 1
- Change JDK 8-provider HOT 1
- Considerations for gradle/community hub HOT 3
- Not working anymore, deprecated? HOT 1
- Deprecation warnings for some classpaths HOT 1
- Can't check updates on gradle 8.4+ because of unchecked SAXNotRecognizedException HOT 2
- Exception in IntelliJ 2024.1 HOT 1
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 gradle-versions-plugin.