[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks - #6716

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master
Aug 10, 2020
Merged

[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks#6716
jimschubert merged 4 commits into
OpenAPITools:masterfrom
HenningWaack:master

Conversation

@HenningWaack

@HenningWaackHenningWaack commented Jun 19, 2020

Copy link
Copy Markdown
Contributor

Fixes#6472

Enhance current Gradle plugin to support Caching and Up-To-Date checks by declaring @input and @OutputDirectory annotations. This can speed up build times.

  • replaced @internal with @optional annoations
  • added @InputFile and @OutputDirectory to file inputs
  • added @input to all configuration inputs
  • added @CacheableTask to all task except GeneratorsTask
  • Added notes to README
  • Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project beforehand.
  • Run the shell script ./bin/generate-samples.shto update all Petstore samples related to your fix. 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/config/java*. For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/build

- replaced @internal with @optional annoations
- added @InputFile and @OutputDirectory to file inputs
- added @input to all configuration inputs
- added @CacheableTask to all task except GeneratorsTask
- Added notes to README
- Updated Gradle Wrapper to 5.6.4 in accordance to pom.xml
@jimschubert

Copy link
Copy Markdown
Member

Thanks for the PR but your commit (as shown in the Commits tab) is not linked to your Github account, which means this PR won't count as your contribution in https://github.com/OpenAPITools/openapi-generator/graphs/contributors.

Let me know if you need help fixing it.

Ref: https://github.com/OpenAPITools/openapi-generator/wiki/FAQ#how-can-i-update-commits-that-are-not-linked-to-my-github-account

Also, when I originally wrote this plugin I think latest Gradle was 4.7 and I don't believe these options were available. They're incubating, do you know if this raises the earliest supported version of Gradle?

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

Hi, thanks for your comment. And thanks for your offer to help with linking my account to the commits, which I am not sure how to do, even after looking at the link you provided... :)

Concerning the compatibility. The plugin as I have committed it is compatible with Gradle 5.6+. Problem with previous versions is that Gradle did not gracefully handle @FileInput annotations on String types. This leads to exceptions when executing the task, which was resolved with v5.6.

If you would like to have compatibility with lower versions of Gradle, there are two possible options:

  1. Non-breaking: Introduce a new input, e.g. named "inputSpecFile", which is of type File. Users could then use inputSpecFile = file(spec), as an alternative to still having inputSpec of type String. So users could decide to "migrate" to a cacheable solution whenever they feel like it.
  2. Breaking: change inputSpec to type File, which simplifies the config options and implementation, but requires users to change their config to inputSpec = file(spec)

BTW, the Gradle version used in the appveyor tool was 5.2.1, so I guess this is the lowest version we should aim for in terms of compatibility.

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack I think I'm cool with bumping the minimal version to 5.6 to better use Gradle to its fullest. If it were to break people on older versions of Gradle, it should be pretty trivial for them to convert to a task which execs CodegenConfigurator directly. @wing328 any thoughts on this?

To associate your commits with your GitHub account, the easiest thing to do would be to register the email used in your commits (view using git log) with your GitHub account at https://github.com/settings/emails. Otherwise the fix would be to rebase your commits and update the author information with your desired name and email using:

git commit --amend --author="Author Name <email@address.com>" --no-edit

@HenningWaack

Copy link
Copy Markdown
ContributorAuthor

@jimschubert , any update on this?

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good!

@jimschubert

Copy link
Copy Markdown
Member

@HenningWaack sorry for the delayed response, I was on hiatus for about a month.
I got feedback from the core team and the 5.6 Gradle limit is good. I'm merging this now to get any community feedback before the 5.0 release.

Thanks for this awesome work!

@jimschubertjimschubert changed the title Enabling up-to-date checks and gradle caching for openapigenerator tasks[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasksAug 10, 2020
@jimschubert
jimschubert merged commit e4c858c into OpenAPITools:masterAug 10, 2020
@jimschubertjimschubert added this to the 5.0.0 milestone Aug 10, 2020
jimschubert added a commit that referenced this pull request Aug 12, 2020
* master: (27 commits)
[WIP][python-exp] Force camelization of imports (#7186)
Fixes#6942: Added ability to prepend a basePath to typescript-redux-query generators (#6943)
[Typescript] Import path is invalid in windows. (#7175)
Fix JaxRS Spec generator additional model types (#7180)
[python{,-experimental}] Obey floating point timeouts provided to RESTClientObject.request(...) (#7154)
[C#] Switch the spec to OAS v3 from v2 (#7176)
[Javascript] Fixing the handling of non primitive types in paramToString (#7171) (#7172)
[typescript-node] Fix invalid type when using node@10 and ES5 (#7133)
Minor fix to github workflow badge
[gradle] Enabling up-to-date checks and gradle caching for openapigenerator tasks (#6716)
feat(csharp-netcore): Adding response headers to the ApiException (#7169)
[ci] Verify supported JDK versions on master push (#7085)
Issue #6830: Java server - Add getter to ApiException templates (#7150)
update kotlin samples
[Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient (#6999)
Sttp - wrap query params (#6884)
Add a link to https://medium.com/@everisBrasil blog post (#7160)
[C#][netcore] fix regular expression when it contains double quotes (#7147)
remove duplicated cancellationToken in comment (#7148)
update samples
...
@sesamzoo

Copy link
Copy Markdown

@HenningWaack, I guess this is also the fix for #4492. Am I right?

@jimschubert

Copy link
Copy Markdown
Member

@sesamzoo correct. Thanks for pinging and linking the related issue.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ] [Gradle] Support Gradle Cache for Gradle Plugin "org.openapi.generator"

3 participants

@HenningWaack@jimschubert@sesamzoo