Comments (5)
I get a similar exception on Windows for this project when klib validation is enabled here (by adding klib.enabled = true
):
> Task :core:live-tests:klibApiMergeInferred FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':core:live-tests:klibApiMergeInferred'.
> java.io.FileNotFoundException: File does not exist: C:\...\kord\core\live-tests\build\api\js\live-tests.klib.api
The relevant parts of the project layout look like this:
kord (root project, BCV plugin not applied)
|
+-- core (public api subproject, BCV plugin applied)
|
+-- live-tests (internal subproject, BCV plugin not applied)
It seems like BCV tries to find the .klib.api
file for a subproject that won't ever create one because the BCV plugin isn't applied there.
The workaround I found is putting this into kord/core/build.gradle.kts
:
apiValidation {
ignoredProjects += "live-tests"
}
from binary-compatibility-validator.
@JakeWharton thanks for reporting!
from binary-compatibility-validator.
There's nothing specific about JS target in this particular case, it just appears to be the first target to load a dump for merging.
For API build tasks, we're skipping a task if there are no sources associated with it (and :redwood-layout-modifiers
is indeed "empty"), but all other tasks are not skipped and thus fail.
from binary-compatibility-validator.
That module contains only generated sources, which are correctly picked up by the dump: https://github.com/cashapp/redwood/pull/1884/files#diff-01c56a8c31dca2ba8b0d2218624f995999da354e5ac75bc91877b5dbb6abd60c
The sources are produced by adding a Task
to the source set here: https://github.com/cashapp/redwood/blob/0b99e1067cc61ee58b3560ac949bb83cba3bb506/redwood-gradle-plugin/src/main/kotlin/app/cash/redwood/gradle/RedwoodGeneratorPlugin.kt#L106-L107. Adding the task directly means Gradle will automatically run the task before anyone can consume the source set. The task's @OutputDirectory
has the files which are then included in the source set.
from binary-compatibility-validator.
I tried adding the task to the source set as soon as possible (when the multiplatform plugin is applied), but it didn't change the outcome.
from binary-compatibility-validator.
Related Issues (20)
- BCV Gradle Plugin should not depend on kotlin-compiler-embeddable HOT 1
- BCV tasks do not work for a project with generated sources when configuration cache is enabled
- org.gradle.api.InvalidUserDataException? HOT 2
- @JvmOverloads doesn't generate different methods for compose functions HOT 2
- Klib validation DSL for Groovy is different HOT 1
- Removal of default parameter is binary compatible but breaks runtime HOT 3
- `public` members of non-API supertype should be visible in the inheritor
- Unknown native target errors with Kotlin 2.0.0-RC1 HOT 4
- `KlibSignatureVersion.LATEST.toString()` is rendered as `KlibSignatureVersion(-2147483648)`
- Add Gradle version compatibility tests HOT 2
- Consider moving BCV to Kotlin repo HOT 3
- Description of a Syncs API task is uninformative HOT 1
- Add brief description to the top of .api dumps, to help explain the file and BCV
- Remove case-insensitive dump file names handling logic HOT 16
- Merge JVM and KLib ABI dumps into a single file
- Use a project/module-agnostic name for dump files
- Removing native targets did not cause API check to fail HOT 4
- Support Multi-Release JAR Files HOT 9
- allow apiDumpDirectory outside projectDir if inside rootProjectDir
- Allow `apiCheck` to run on all subprojects before failing HOT 2
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 binary-compatibility-validator.