From fdb6faed00ef73c98e2f69c133d8c9a87a0ca9b0 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Sun, 13 Oct 2019 15:26:43 +0200 Subject: [PATCH 1/4] Update at-since in Javadoc, make script work on Mac OS X --- core/src/main/java/hudson/FilePath.java | 2 +- core/src/main/java/hudson/PluginWrapper.java | 12 ++++++------ core/src/main/java/hudson/TcpSlaveAgentListener.java | 2 +- core/src/main/java/hudson/model/UpdateCenter.java | 2 +- core/src/main/java/hudson/model/UpdateSite.java | 10 +++++----- core/src/main/java/hudson/model/ViewGroup.java | 2 +- core/src/main/java/hudson/os/WindowsUtil.java | 2 +- .../jenkins/model/JenkinsLocationConfiguration.java | 2 +- .../java/jenkins/plugins/DetachedPluginsUtil.java | 2 +- .../main/java/jenkins/security/SecurityListener.java | 4 ++-- .../security/stapler/StaplerDispatchValidator.java | 2 +- update-since-todo.sh | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index a4a704cc7c1a..a737973fb258 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -2357,7 +2357,7 @@ public int copyRecursiveTo(final DirScanner scanner, final FilePath target, fina * @param description a description of the fileset, for logging purposes * @param compression compression to use * @return the number of files copied - * @since TODO + * @since 2.196 */ public int copyRecursiveTo(final DirScanner scanner, final FilePath target, final String description, @Nonnull TarCompression compression) throws IOException, InterruptedException { if(this.channel==target.channel) { diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index 879dd3a48600..dbc1c3db5670 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -277,7 +277,7 @@ public void setOptionalDependants(@Nonnull Set optionalDependents) { /** * Like {@link #getDependents} but excluding optional dependencies. - * @since TODO + * @since 2.181 */ public @Nonnull Set getMandatoryDependents() { Set s = new HashSet<>(dependents); @@ -312,7 +312,7 @@ public boolean hasDependents() { /** * Like {@link #hasDependents} but excluding optional dependencies. - * @since TODO + * @since 2.181 */ public boolean hasMandatoryDependents() { if (isBundled) { @@ -357,7 +357,7 @@ public boolean hasDependencies() { /** * Like {@link #hasDependencies} but omitting optional dependencies. - * @since TODO + * @since 2.181 */ public boolean hasMandatoryDependencies() { return dependencies.stream().anyMatch(d -> !d.optional); @@ -486,7 +486,7 @@ public List getDependencies() { /** * Like {@link #getDependencies} but omits optional dependencies. - * @since TODO + * @since 2.181 */ public List getMandatoryDependencies() { return dependencies.stream().filter(d -> !d.optional).collect(Collectors.toList()); @@ -600,7 +600,7 @@ private String getVersionOf(Manifest manifest) { * * @see maven-hpi-plugin#PR-75. * - * @since TODO + * @since 2.158 */ @Exported public @CheckForNull String getMinimumJavaVersion() { @@ -1002,7 +1002,7 @@ public boolean isDeleted() { /** * Same as {@link DetachedPluginsUtil#isDetachedPlugin}. - * @since TODO + * @since 2.185 */ @Exported public boolean isDetached() { diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index 28371d145627..a9751313252b 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -135,7 +135,7 @@ public int getAdvertisedPort() { /** * Gets the host name that we advertise protocol clients to connect to. - * @since TODO + * @since 2.198 */ public String getAdvertisedHost() { if (CLI_HOST_NAME != null) { diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 9c5b318a6de6..ee9d2d5ff2f4 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1671,7 +1671,7 @@ public abstract class DownloadJob extends UpdateCenterJob implements WithCompute /** * Display name used for the GUI. - * @since TODO + * @since 2.189 */ public String getDisplayName() { return getName(); diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java index 5162ccaa2c03..e7bb3581b826 100644 --- a/core/src/main/java/hudson/model/UpdateSite.java +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -956,7 +956,7 @@ public final class Plugin extends Entry { /** * Version of Java this plugin requires to run. * - * @since TODO + * @since 2.158 */ @Exported public final String minimumJavaVersion; @@ -1035,7 +1035,7 @@ public PluginWrapper getInstalled() { * Returns true if the plugin and its dependencies are fully compatible with the current installation * This is set to restricted for now, since it is only being used by Jenkins UI at the moment. * - * @since TODO + * @since 2.175 */ @Restricted(NoExternalUse.class) public boolean isCompatible() { @@ -1132,7 +1132,7 @@ public boolean isForNewerHudson() { /** * Returns true iff the plugin declares a minimum Java version and it's newer than what the Jenkins master is running on. - * @since TODO + * @since 2.158 */ public boolean isForNewerJava() { try { @@ -1161,7 +1161,7 @@ public VersionNumber getNeededDependenciesRequiredCore() { /** * Returns the minimum Java version needed to use the plugin and all its dependencies. - * @since TODO + * @since 2.158 * @return the minimum Java version needed to use the plugin and all its dependencies, or null if unspecified. */ @CheckForNull @@ -1208,7 +1208,7 @@ public boolean isNeededDependenciesForNewerJenkins(PluginManager.MetadataCache c /** * Returns true iff any of the plugin dependencies require a newer Java than Jenkins is running on. * - * @since TODO + * @since 2.158 */ public boolean isNeededDependenciesForNewerJava() { for (Plugin p: getNeededDependencies()) { diff --git a/core/src/main/java/hudson/model/ViewGroup.java b/core/src/main/java/hudson/model/ViewGroup.java index 12d73e1c1e44..628667157aa4 100644 --- a/core/src/main/java/hudson/model/ViewGroup.java +++ b/core/src/main/java/hudson/model/ViewGroup.java @@ -67,7 +67,7 @@ public interface ViewGroup extends Saveable, ModelObject, AccessControlled { * @return * can be empty but never null. * - * @since TODO + * @since 2.174 */ @Nonnull default Collection getAllViews() { diff --git a/core/src/main/java/hudson/os/WindowsUtil.java b/core/src/main/java/hudson/os/WindowsUtil.java index ca21036fcc2f..6da1e5ac2afc 100644 --- a/core/src/main/java/hudson/os/WindowsUtil.java +++ b/core/src/main/java/hudson/os/WindowsUtil.java @@ -39,7 +39,7 @@ * Adapted from: * https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/ * - * @since TODO + * @since 2.183 */ public class WindowsUtil { private static final Pattern NEEDS_QUOTING = Pattern.compile("[\\s\"]"); diff --git a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java index e6664df305f5..3a99bd199e50 100644 --- a/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java +++ b/core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java @@ -44,7 +44,7 @@ public class JenkinsLocationConfiguration extends GlobalConfiguration implements * If disabled, the application will no longer check for URL validity in the configuration page. * This will lead to an instance vulnerable to SECURITY-1471. * - * @since TODO + * @since 2.176.4 / 2.197 */ @Restricted(NoExternalUse.class) @SuppressFBWarnings(value = "MS_SHOULD_BE_FINAL", justification = "Accessible via System Groovy Scripts") diff --git a/core/src/main/java/jenkins/plugins/DetachedPluginsUtil.java b/core/src/main/java/jenkins/plugins/DetachedPluginsUtil.java index a1c631e6d376..be2dce8748ae 100644 --- a/core/src/main/java/jenkins/plugins/DetachedPluginsUtil.java +++ b/core/src/main/java/jenkins/plugins/DetachedPluginsUtil.java @@ -33,7 +33,7 @@ *

* This code was originally moved from {@link ClassicPluginStrategy}. * - * @since TODO + * @since 2.163 */ @Restricted(NoExternalUse.class) public class DetachedPluginsUtil { diff --git a/core/src/main/java/jenkins/security/SecurityListener.java b/core/src/main/java/jenkins/security/SecurityListener.java index 21e5624c5fd9..5ab4771904ec 100644 --- a/core/src/main/java/jenkins/security/SecurityListener.java +++ b/core/src/main/java/jenkins/security/SecurityListener.java @@ -69,7 +69,7 @@ protected void failedToAuthenticate(@Nonnull String username){} protected void loggedIn(@Nonnull String username){} /** - * @since TODO + * @since 2.161 * * Fired after a new user account has been created and saved to disk. * @@ -106,7 +106,7 @@ public static void fireAuthenticated(@Nonnull UserDetails details) { } } - /** @since TODO */ + /** @since 2.161 */ public static void fireUserCreated(@Nonnull String username) { LOGGER.log(Level.FINE, "new user created: {0}", username); for (SecurityListener l : all()) { diff --git a/core/src/main/java/jenkins/security/stapler/StaplerDispatchValidator.java b/core/src/main/java/jenkins/security/stapler/StaplerDispatchValidator.java index 0d601e1ee685..163258c23b4d 100644 --- a/core/src/main/java/jenkins/security/stapler/StaplerDispatchValidator.java +++ b/core/src/main/java/jenkins/security/stapler/StaplerDispatchValidator.java @@ -79,7 +79,7 @@ * {@code jenkins.security.stapler.StaplerDispatchValidator.disabled=true} or setting {@link #DISABLED} to * {@code true} in the script console.

* - * @since TODO + * @since 2.176.2 / 2.186 */ @Restricted(NoExternalUse.class) public class StaplerDispatchValidator implements DispatchValidator { diff --git a/update-since-todo.sh b/update-since-todo.sh index 8aabc2ac0000..eeec9fe42754 100755 --- a/update-since-todo.sh +++ b/update-since-todo.sh @@ -25,7 +25,7 @@ do echo -e "\tfirst tag was $firstTag" echo -e "\tUpdating file in place" sedExpr="${line}s/@since TODO/@since ${firstTag//jenkins-/}/" - sed -i $sedExpr $file + sed -i.bak $sedExpr $file else echo -e "\tNot updating file, no tag found. Normal if the associated PR/commit is not merged and released yet" fi From d6c58cfdb671dfc45f1c3d15650d853c44215182 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 16 Oct 2019 12:22:25 +0200 Subject: [PATCH 2/4] Add changes from 2.200 --- core/src/main/java/hudson/Functions.java | 2 +- core/src/main/java/hudson/model/View.java | 2 +- .../main/java/jenkins/security/ResourceDomainConfiguration.java | 2 +- core/src/main/java/jenkins/security/ResourceDomainFilter.java | 2 +- .../java/jenkins/security/ResourceDomainRecommendation.java | 2 +- .../main/java/jenkins/security/ResourceDomainRootAction.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index eb784bb9ce89..d99a7674d27b 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -732,7 +732,7 @@ public static String encode(String s) { * Shortcut function for calling {@link URLEncoder#encode(String,String)} (with UTF-8 encoding).
* Useful for encoding URL query parameters in jelly code (as in {@code "...?param=${h.urlEncode(something)}"}). * - * @since TODO + * @since 2.200 */ public static String urlEncode(String s) { try { diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 92870a6fc331..cab7dbc75584 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -954,7 +954,7 @@ void addDisplayNamesToSearchIndex(SearchIndexBuilder sib, Collection() {// for jobs in the view diff --git a/core/src/main/java/jenkins/security/ResourceDomainConfiguration.java b/core/src/main/java/jenkins/security/ResourceDomainConfiguration.java index 7edd20276dde..1b960d0bfc3c 100644 --- a/core/src/main/java/jenkins/security/ResourceDomainConfiguration.java +++ b/core/src/main/java/jenkins/security/ResourceDomainConfiguration.java @@ -61,7 +61,7 @@ * @see ResourceDomainFilter * @see ResourceDomainRootAction * - * @since TODO + * @since 2.200 */ @Extension(ordinal = JenkinsLocationConfiguration.ORDINAL-1) // sort just below the regular location config @Restricted(NoExternalUse.class) diff --git a/core/src/main/java/jenkins/security/ResourceDomainFilter.java b/core/src/main/java/jenkins/security/ResourceDomainFilter.java index 7b7dceeee874..ebc224e9fb72 100644 --- a/core/src/main/java/jenkins/security/ResourceDomainFilter.java +++ b/core/src/main/java/jenkins/security/ResourceDomainFilter.java @@ -42,7 +42,7 @@ * Prohibit requests to Jenkins coming through a resource domain URL configured with * {@link ResourceDomainConfiguration}, except anything going to {@link ResourceDomainRootAction}. * - * @since TODO + * @since 2.200 */ @Restricted(NoExternalUse.class) public class ResourceDomainFilter implements Filter { diff --git a/core/src/main/java/jenkins/security/ResourceDomainRecommendation.java b/core/src/main/java/jenkins/security/ResourceDomainRecommendation.java index 0e4e9c262424..0cf942c4f31f 100644 --- a/core/src/main/java/jenkins/security/ResourceDomainRecommendation.java +++ b/core/src/main/java/jenkins/security/ResourceDomainRecommendation.java @@ -43,7 +43,7 @@ * * @see ResourceDomainConfiguration * - * @since TODO + * @since 2.200 */ @Extension @Restricted(NoExternalUse.class) diff --git a/core/src/main/java/jenkins/security/ResourceDomainRootAction.java b/core/src/main/java/jenkins/security/ResourceDomainRootAction.java index 5cb8d2b41e5e..cdfd3d55a7a2 100644 --- a/core/src/main/java/jenkins/security/ResourceDomainRootAction.java +++ b/core/src/main/java/jenkins/security/ResourceDomainRootAction.java @@ -62,7 +62,7 @@ * @see ResourceDomainConfiguration * @see ResourceDomainFilter * - * @since TODO + * @since 2.200 */ @Extension @Restricted(NoExternalUse.class) From 4d6590e768bbd483468fee9ded057d7c132641fa Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 16 Oct 2019 12:22:47 +0200 Subject: [PATCH 3/4] Shellcheck findings --- update-since-todo.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/update-since-todo.sh b/update-since-todo.sh index eeec9fe42754..4422e97b0b51 100755 --- a/update-since-todo.sh +++ b/update-since-todo.sh @@ -5,27 +5,27 @@ set -euo pipefail -me=`basename "$0"` +me="$( basename "$0" )" IFS=$'\n' for todo in $( git grep --line-number '@since TODO' | grep -v "$me" ) do #echo "TODO: $todo" - file=$( echo $todo | cut -d : -f 1 ) - line=$( echo $todo | cut -d : -f 2 ) + file=$( echo "$todo" | cut -d : -f 1 ) + line=$( echo "$todo" | cut -d : -f 2 ) echo "Analyzing $file:$line" - lineSha=$( git blame --porcelain -L $line,$line $file | head -1 | cut -d ' ' -f 1 ) + lineSha=$( git blame --porcelain -L "$line,$line" "$file" | head -1 | cut -d ' ' -f 1 ) echo -e "\tfirst sha: $lineSha" - firstTag=$( git tag --sort=creatordate --contains $lineSha | head -1 ) + firstTag=$( git tag --sort=creatordate --contains "$lineSha" | head -1 ) - if [[ ! -z $firstTag ]]; then + if [[ -n $firstTag ]]; then echo -e "\tfirst tag was $firstTag" echo -e "\tUpdating file in place" sedExpr="${line}s/@since TODO/@since ${firstTag//jenkins-/}/" - sed -i.bak $sedExpr $file + sed -i.bak "$sedExpr" "$file" else echo -e "\tNot updating file, no tag found. Normal if the associated PR/commit is not merged and released yet" fi From 67a9e8af385e97ab29d26a7f2053c1cce379ab98 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 16 Oct 2019 12:23:01 +0200 Subject: [PATCH 4/4] Remove the backup file immediately --- update-since-todo.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/update-since-todo.sh b/update-since-todo.sh index 4422e97b0b51..17192ac63838 100755 --- a/update-since-todo.sh +++ b/update-since-todo.sh @@ -26,6 +26,7 @@ do echo -e "\tUpdating file in place" sedExpr="${line}s/@since TODO/@since ${firstTag//jenkins-/}/" sed -i.bak "$sedExpr" "$file" + rm -f "$file.bak" else echo -e "\tNot updating file, no tag found. Normal if the associated PR/commit is not merged and released yet" fi