Skip to content

Conversation

robertmarsal
Copy link

@robertmarsal robertmarsal commented Oct 13, 2025

When generating code using the typescript generator the docs would be placed in the root directory. This fix make the generator consistent with the other generators and puts the docs under a /docs directory

Solves #18276

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

@TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02) @davidgamero (2022/03) @mkusaka (2022/04) @joscha (2024/10)

After the changes the docs get put in the expected directory:
image

@joscha
Copy link
Contributor

joscha commented Oct 13, 2025

I like it. @macjohnny do you think we can make this the default new behavior? Technically it breaks backwards compat. It also doesn't currently check if the path exists before writing into it.
If we can't make it the default now, is there a way to mark it for the next major release to become the default? //cc @wing328

@wing328
Copy link
Member

wing328 commented Oct 14, 2025

we can consider this as a bug fix so that it can be included in the upcoming release.

if users prefer the old location, they can always move the markdown files post code generation.

public String apiDocFileFolder() {
return (outputFolder + File.separator + apiDocPath);
}

Copy link
Member

Choose a reason for hiding this comment

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

suggestion:

    @Override
    public String apiDocFileFolder() {
        return (outputFolder + "/" + apiDocPath).replace('/', File.separatorChar);
    }

Copy link
Contributor

Choose a reason for hiding this comment

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

^ agree with this as it means the apiDocPath becomes system-agnostic.

Copy link
Author

Choose a reason for hiding this comment

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

thanks, pushed a commit to do this.

apiPackage = this.apiPackage + ".apis";
testPackage = this.testPackage + ".tests";

additionalProperties.put("apiDocPath", apiDocPath);
Copy link
Member

Choose a reason for hiding this comment

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

is this even needed?

Copy link
Author

Choose a reason for hiding this comment

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

not at the moment but when the README will be updated to be consistent with the other generators and include the docs, it is used there, see the Java README for example:

{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{commonPath}}{{path}} | {{summary}}

@macjohnny
Copy link
Member

@robertmarsal thanks for the clarification. can you please update the samples?

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.

4 participants