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

Add cargo xtask precommit rename validate-openapi to openapi #687

Merged
merged 2 commits into from
Aug 15, 2024

Conversation

chirino
Copy link
Contributor

@chirino chirino commented Aug 15, 2024

  • I think this should streamline the xtask commands a bit.

  • cargo xtask precommit does: generates the schema, generates openapi, validates openapi, cargo fmt, cargo clip, and cargo check.

  • the cargo xtask openapi command now generates and validates (it has flags to skip either).

  • the cargo xtask gnerate-schemas now only generates the schemas.

* `cargo xtask precommit` does: generates the schema, generates openapi, validates openapi, cargo fmt, cargo clip, and cargo check.
	

* the `cargo xtask openapi` command now generates and validates (it has flags to skip either).

* the `cargo xtask gnerate-schemas` now only generates the schemas.
@helio-frota
Copy link
Collaborator

still working on fedora 👍

   Compiling xtask v0.1.0-alpha.13 (/home/heliofrota/Desktop/tc/trustify/xtask)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 02s
     Running `target/debug/xtask openapi`
Writing openapi to "openapi.yaml"
Validating openapi at "openapi.yaml"
Validating spec (/src/openapi.yaml)
Warnings:
	- Unused model: AdvisoryVulnerabilityAssertions
	- Unused model: Assertion
	- Unused model: Uuid

[info] Spec has 3 recommendation(s).trustify git:(xtask) cargo xtask openapi

@helio-frota helio-frota self-requested a review August 15, 2024 15:07
@bobmcwhirter
Copy link
Contributor

trying on OSX, will report back.

@bobmcwhirter
Copy link
Contributor

Okay, it's the relative path that's problematic.

If I specify $PWD instead of . it works:

bob@macbox trustify % podman  run --rm -v $PWD:/src --security-opt label=disable docker.io/openapitools/openapi-generator-cli:v7.7.0 validate -i /src/openapi.yaml
Validating spec (/src/openapi.yaml)
Warnings:
	- Unused model: AdvisoryVulnerabilityAssertions
	- Unused model: Assertion
	- Unused model: Uuid

[info] Spec has 3 recommendation(s).

Whereas the xtask is just using .:

bob@macbox trustify % podman  run --rm -v .:/src --security-opt label=disable docker.io/openapitools/openapi-generator-cli:v7.7.0 validate -i /src/openapi.yaml
Validating spec (/src/openapi.yaml)
[main] WARN  io.swagger.v3.parser.OpenAPIV3Parser - Exception while reading:
io.swagger.v3.parser.exception.ReadContentException: Unable to read location `/src/openapi.yaml`
	at io.swagger.v3.parser.OpenAPIV3Parser.readContentFromLocation(OpenAPIV3Parser.java:310)
	at io.swagger.v3.parser.OpenAPIV3Parser.readLocation(OpenAPIV3Parser.java:95)
	at io.swagger.parser.OpenAPIParser.readLocation(OpenAPIParser.java:16)
	at org.openapitools.codegen.cmd.Validate.execute(Validate.java:52)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Caused by: java.lang.RuntimeException: Could not find /src/openapi.yaml on the classpath
	at io.swagger.v3.parser.util.ClasspathHelper.loadFileFromClasspath(ClasspathHelper.java:33)
	at io.swagger.v3.parser.OpenAPIV3Parser.readContentFromLocation(OpenAPIV3Parser.java:301)
	... 5 common frames omitted
[main] ERROR i.s.parser.SwaggerCompatConverter - failed to read resource listing
java.lang.RuntimeException: Could not find /src/openapi.yaml on the classpath
	at io.swagger.parser.util.ClasspathHelper.loadFileFromClasspath(ClasspathHelper.java:31)
	at io.swagger.parser.SwaggerCompatConverter.readResourceListing(SwaggerCompatConverter.java:206)
	at io.swagger.parser.SwaggerCompatConverter.read(SwaggerCompatConverter.java:122)
	at io.swagger.parser.SwaggerCompatConverter.readWithInfo(SwaggerCompatConverter.java:93)
	at io.swagger.parser.SwaggerParser.readWithInfo(SwaggerParser.java:45)
	at io.swagger.v3.parser.converter.SwaggerConverter.readLocation(SwaggerConverter.java:83)
	at io.swagger.parser.OpenAPIParser.readLocation(OpenAPIParser.java:16)
	at org.openapitools.codegen.cmd.Validate.execute(Validate.java:52)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
[main] ERROR i.s.parser.SwaggerCompatConverter - failed to read resource listing
java.lang.RuntimeException: Could not find /src/openapi.yaml on the classpath
	at io.swagger.parser.util.ClasspathHelper.loadFileFromClasspath(ClasspathHelper.java:31)
	at io.swagger.parser.SwaggerCompatConverter.readResourceListing(SwaggerCompatConverter.java:206)
	at io.swagger.parser.SwaggerCompatConverter.read(SwaggerCompatConverter.java:122)
	at io.swagger.parser.SwaggerCompatConverter.readWithInfo(SwaggerCompatConverter.java:93)
	at io.swagger.parser.SwaggerParser.readWithInfo(SwaggerParser.java:45)
	at io.swagger.v3.parser.converter.SwaggerConverter.readLocation(SwaggerConverter.java:83)
	at io.swagger.parser.OpenAPIParser.readLocation(OpenAPIParser.java:16)
	at org.openapitools.codegen.cmd.Validate.execute(Validate.java:52)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.Collection.size()" because "<parameter1>" is null
	at java.base/java.util.HashSet.<init>(Unknown Source)
	at org.openapitools.codegen.cmd.Validate.execute(Validate.java:54)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
bob@macbox trustify %

Signed-off-by: Hiram Chirino <hiram@hiramchirino.com>
@bobmcwhirter
Copy link
Contributor

Works on OSX now

bob@macbox trustify % cargo xtask openapi
   Compiling xtask v0.1.0-alpha.13 (/Users/bob/repos/trustification/trustify/xtask)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.78s
     Running `target/debug/xtask openapi`
Writing openapi to "openapi.yaml"
Validating openapi at "openapi.yaml"
Validating spec (/src/openapi.yaml)
Warnings:
	- Unused model: AdvisoryVulnerabilityAssertions
	- Unused model: Assertion
	- Unused model: Uuid

[info] Spec has 3 recommendation(s).
bob@macbox trustify %

@chirino chirino added this pull request to the merge queue Aug 15, 2024
Merged via the queue into trustification:main with commit ddfdc85 Aug 15, 2024
1 check passed
@chirino chirino deleted the xtask branch August 15, 2024 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants