Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specify vendordep json file format #192

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions VendordepJsonSpecification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
WPILib Vendor Dependency JSON File Format Specification
===

- version: 1.0

Types
---
| Typename | JSON description |
---
| JavaArtifact | `{ groupId: String, ArtifactId: String, version: String }` |
| JniArtifact | `{ groupId: String, ArtifactId: String, version: String, skipInvalidPlatforms: Boolean, isJar: Boolean, validPlatforms: String[] }` |
| CppArtifact | `{ groupId: String, ArtifactId: String, version: String, libName: String, headerClassifier: String, sharedLibrary: Boolean, skipInvalidPlatforms: Boolean, binaryPlatforms: String[] }` |
Comment on lines +10 to +12
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how this should be formatted


Keys
---
| Name | Type | Description | Optional |
---
| name | String | The name of the vendordep. | No. |
| version | String | The version of the vendordep. | No. |
| uuid | String | The unique identifier for the vendordep. Used to avoid replicating vendordeps in projects. | No. |
| mavenUrls | String[] | An array of urls pointing to the root of the maven repository storing the vendordep. | No. |
| extraGroupIds | String[] | | Yes. |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what this is or if it's a valid key I got my specifications from https://github.com/wpilibsuite/native-utils/blob/main/src/main/java/edu/wpi/first/nativeutils/vendordeps/WPIVendorDepsExtension.java#L310 and the example json file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Im also not sure if

        public VendorDependency[] requires;
        public VendorDependency[] conflictsWith;

should be added in here along with the corresponding types

| jsonUrl | String | The URL that the vendordep json file can be found at. | Yes. |
| fileName | String | The name of the file this vendordep should be found in. | No. |
| frcYear | String | The FRC year that this project should be compatible with | No. |
| javaDependencies | JavaArtifact[] | The Java artifacts that the project exports. | No. |
| jniDependencies | JniArtifact[] | The JNI Artifacts that the project exports. | No. |
| cppDependencies | CppArtifact[] | The C++ Artifacts that the project exports. | No. |