From f2dfdf3231896043c9d3f3dce9e9e7a4c5202ff6 Mon Sep 17 00:00:00 2001 From: Tomas Straupis Date: Tue, 19 Jan 2016 13:07:52 +0200 Subject: [PATCH 01/31] Lithuanian translation update --- .../jenkins/slaves/systemInfo/Messages_lt.properties | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/resources/jenkins/slaves/systemInfo/Messages_lt.properties b/core/src/main/resources/jenkins/slaves/systemInfo/Messages_lt.properties index e3a8c972b9..2cc8fdaef1 100644 --- a/core/src/main/resources/jenkins/slaves/systemInfo/Messages_lt.properties +++ b/core/src/main/resources/jenkins/slaves/systemInfo/Messages_lt.properties @@ -1,4 +1,6 @@ # This file is under the MIT License by authors -EnvVarsSlaveInfo.DisplayName=Aplinkos kintamieji -SystemPropertySlaveInfo.DisplayName=Sistemos savyb\u0117s +ClassLoaderStatisticsSlaveInfo.DisplayName = Nutolusio klasi\u0173 \u012Fk\u0117l\u0117jo statistika +EnvVarsSlaveInfo.DisplayName = Aplinkos kintamieji +SystemPropertySlaveInfo.DisplayName = Sistemos savyb\u0117s +ThreadDumpSlaveInfo.DisplayName = Gijos informacija From 281c033ba88ae1c399be63cd6582f0cfd80960ac Mon Sep 17 00:00:00 2001 From: Tomas Straupis Date: Tue, 19 Jan 2016 13:13:35 +0200 Subject: [PATCH 02/31] Lithuanian translation update --- .../main/resources/jenkins/triggers/Messages_lt.properties | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 core/src/main/resources/jenkins/triggers/Messages_lt.properties diff --git a/core/src/main/resources/jenkins/triggers/Messages_lt.properties b/core/src/main/resources/jenkins/triggers/Messages_lt.properties new file mode 100644 index 0000000000..ca27c3e1f2 --- /dev/null +++ b/core/src/main/resources/jenkins/triggers/Messages_lt.properties @@ -0,0 +1,4 @@ +# This file is under the MIT License by authors + +ReverseBuildTrigger.build_after_other_projects_are_built=Vykdyti pabaigus kitus projektus +ReverseBuildTrigger.running_as_cannot_even_see_for_trigger_f=Vykdomas kaip {0} net negali matyti {1} trigeriui i\u0161 {2} From 79573b5ce2348ccfdf6dcf664a09a3e552774be8 Mon Sep 17 00:00:00 2001 From: Tomas Straupis Date: Tue, 19 Jan 2016 13:27:50 +0200 Subject: [PATCH 03/31] Lithuanian translation update --- .../jenkins/management/Messages_lt.properties | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 core/src/main/resources/jenkins/management/Messages_lt.properties diff --git a/core/src/main/resources/jenkins/management/Messages_lt.properties b/core/src/main/resources/jenkins/management/Messages_lt.properties new file mode 100644 index 0000000000..929aa43e71 --- /dev/null +++ b/core/src/main/resources/jenkins/management/Messages_lt.properties @@ -0,0 +1,32 @@ +# This file is under the MIT License by authors + +CliLink.Description=Prieiti/tvarkyti Jenkins\u0105 i\u0161 j\u016Bs\u0173 aplinkos arba skripto. +CliLink.DisplayName=Jenkins CLI + +ConfigureLink.Description=Konfig\u016Bruoti globalius nustatymus ir kelius. +ConfigureLink.DisplayName=Konfig\u016Bruoti sistem\u0105 + +ConsoleLink.Description=Vykdo nurodyt\u0105 skript\u0105 administravimui/problem\u0173-aptikimui/diagnostikai. +ConsoleLink.DisplayName=Skript\u0173 konsol\u0117 + +NodesLink.Description=Prid\u0117ti, i\u0161imti, valdyti ir steb\u0117ti skirtingus mazgus, kuriuose Jenkinsas vykdo darbus. +NodesLink.DisplayName=Valdyti mazgus + +PluginsLink.Description=Prid\u0117ti, i\u0161imti, i\u0161jungti ir \u012Fjungti priedus, kurie gali papildyti Jenkinso funkcionalum\u0105. +PluginsLink.DisplayName=Valdyti priedus + +ReloadLink.Description=I\u0161mesti visus \u012F atmint\u012F \u012Fkeltus duomenis ir visk\u0105 \u012Fkelti i\u0161 naujo i\u0161 fail\u0173 sistemos.\nNaudinga, kai failus pakeit\u0117te tiesiai diske. +ReloadLink.DisplayName=I\u0161 naujo \u012Fkelti konfig\u016Bracij\u0105 i\u0161 disko + +ShutdownLink.Description=Sustabdo nauj\u0173 darb\u0173 vykdym\u0105, kad b\u016Bt\u0173 galima saugiai i\u0161jungti sistem\u0105. +ShutdownLink.DisplayName_cancel=Nutraukti i\u0161jungim\u0105 +ShutdownLink.DisplayName_prepare=Pasiruo\u0161ti i\u0161jungimui + +StatisticsLink.Description=Patikrinkite j\u016Bs\u0173 resurs\u0173 naudojim\u0105 ir pa\u017Ei\u016Br\u0117kite, ar jums reikia daugiau kompiuteri\u0173 darbams. +StatisticsLink.DisplayName=Apkrovos statistika + +SystemInfoLink.Description=Rodo \u012Fvairi\u0105 aplinkos informacij\u0105, kuri padeda aptikti problemas. +SystemInfoLink.DisplayName=Sistemos informacija + +SystemLogLink.Description=Sistemos \u017Eurnale kaupiama informacija i\u0161 java.util.logging i\u0161vesties, susijusios su Jenkinsu. +SystemLogLink.DisplayName=Sistemos \u017Eurnalas From 5f95e4a167e463b6c5a371dc6b24d2a9626c9004 Mon Sep 17 00:00:00 2001 From: Tomas Straupis Date: Tue, 19 Jan 2016 13:50:46 +0200 Subject: [PATCH 04/31] Lithuanian translation update --- .../jenkins/model/Messages_lt.properties | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/core/src/main/resources/jenkins/model/Messages_lt.properties b/core/src/main/resources/jenkins/model/Messages_lt.properties index 4679c2595b..9453eeffb1 100644 --- a/core/src/main/resources/jenkins/model/Messages_lt.properties +++ b/core/src/main/resources/jenkins/model/Messages_lt.properties @@ -1 +1,48 @@ +BlockedBecauseOfBuildInProgress.ETA= \ (ETA:{0}) +BlockedBecauseOfBuildInProgress.shortDescription=Darbas #{0} jau vykdomas{1} + BuildDiscarderProperty.displayName=Pa\u0161alinti senus darbus + +CLI.cancel-quiet-down.shortDescription=Nutraukti \u201Etylaus-nuleidimo\u201C komandos efekt\u0105. +CLI.keep-build.shortDescription=Pa\u017Eym\u0117ti darb\u0105 am\u017Einam rezultat\u0173 saugojimui. +CLI.quiet-down.shortDescription=Tyliai i\u0161jungti Jenkins\u0105, ruo\u0161iantis paleidimui i\u0161 naujo. Neprad\u0117ti joki\u0173 darb\u0173. +CLI.reload-configuration.shortDescription=I\u0161mesti visus \u012F atmint\u012F \u012Fkeltus duomenis ir \u012Fkelti visk\u0105 i\u0161 fail\u0173 sistemos. Naudinga, kai kei\u010Diate konfig\u016Bracijos failus tiesiai diske. +CLI.restart.shortDescription=I\u0161 naujo paleisti Jenkins\u0105. +CLI.safe-restart.shortDescription=Saugiai i\u0161 naujo paleisti Jenkins\u0105. +CLI.safe-shutdown.shortDescription=Perjungia Jenkins\u0105 \u012F tyl\u0173 re\u017Eim\u0105, palaukia, kol baigiami vykdomi darbai, ir tada i\u0161jungia Jenkins\u0105. +CLI.shutdown.shortDescription=Nedelsiant i\u0161jungia Jenkinso server\u012F. + +CauseOfInterruption.ShortDescription=Nutrauk\u0117 naudotojas {0} + +DefaultProjectNamingStrategy.DisplayName=Numatyta + +Hudson.BadPortNumber=Blogas prievado numeris {0} +Hudson.Computer.Caption=Valdytojas +Hudson.Computer.DisplayName=valdytojas +Hudson.ControlCodeNotAllowed=Valdymo kodas neleid\u017Eiamas: {0} +Hudson.DisplayName=Jenkins +Hudson.JobAlreadyExists=Jau yra darbas pavadinimu \u201E{0}\u201C +Hudson.JobNameConventionNotApplyed=\u201E{0}\u201C neatitinka darb\u0173 pavadinim\u0173 susitarimo \u0161ablono {1} +Hudson.NoJavaInPath=j\u016Bs\u0173 PATH n\u0117ra javos. Gal reikia sukonfig\u016Bruoti JDKs? +Hudson.NoName=Nenurodytas vardas +Hudson.NodeBeingRemoved=Mazgas \u0161alinamas +Hudson.NodeDescription=Jenkinso valdytojo mazgas +Hudson.NotUsesUTF8ToDecodeURL=J\u016Bs\u0173 konteineris nenaudoja UTF-8 atkoduojant URL. Jei naudosite ne ASCII simbolius darb\u0173 pavadinimuose, tai sukels problem\u0173. Daugiau informacijos rasite Konteineri\u0173 ir Tomcat i18n apra\u0161ymuose. +Hudson.UnsafeChar=\u201E{0}\u201C yra nesaugus simbolis +Hudson.ViewAlreadyExists=Jau yra rodinys pavadintas \u201E{0}\u201C +Hudson.ViewName=Visi + +IdStrategy.CaseInsensitive.DisplayName=Neskirti raid\u017Ei\u0173 dyd\u017Eio +IdStrategy.CaseSensitive.DisplayName=Skirti raid\u017Ei\u0173 dyd\u012F +IdStrategy.CaseSensitiveEmailAddress.DisplayName=Raid\u017Ei\u0173 dydis svarbus (e-pa\u0161to adresas) + +Mailer.Address.Not.Configured=adresas dar nesukonfig\u016Bruotas +Mailer.Localhost.Error=Pra\u0161ome nurodyti tinkam\u0105 serverio pavadinim\u0105, o ne localhost + +ParameterizedJobMixIn.build_now=Vykdyti dabar +ParameterizedJobMixIn.build_with_parameters=Vykdyti su parametrais + +PatternProjectNamingStrategy.DisplayName=\u0160ablonas +PatternProjectNamingStrategy.NamePatternInvalidSyntax=netinkama reguliariosios i\u0161rai\u0161kos sintaks\u0117. +PatternProjectNamingStrategy.NamePatternRequired=Reikia pavadinim\u0173 \u0161ablono + From 4b8d30a100cbb98f493d6ac6fdb243292c1079a2 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sat, 26 Mar 2016 13:01:59 -0700 Subject: [PATCH 05/31] Don't go through init sequence twice As a part of PR 1847, 3b5424e507be introduced a second invocation to executeReactor. This is causing a problem in that it exectes InitMilestone progression twice. If you are looking at Jenkins.getInitLevel() it will go through STARTED ... COMPLETED once, then it goes back to STARTED and then go to COMPLETED again. And this code looks bit odd anyway. Why execute a whole reactor just to make one method invocation? But I didn't see any discussion of this in PR 1847. This change fixes this oddity by making this a part of the main (and sole) initialization reactor session. It's not clear what milestone should be the pre-requisite, but given that it's only looking at dependency chain, PLUGINS_PREPARED should be adequate. --- core/src/main/java/hudson/PluginManager.java | 8 ++++++++ core/src/main/java/jenkins/model/Jenkins.java | 16 ---------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 7aa8a6202f..3e75ab608d 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -443,6 +443,14 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas session.addAll(g.discoverTasks(session)); } }); + + // All plugins are loaded. Now we can figure out who depends on who. + requires(PLUGINS_PREPARED).attains(COMPLETED).add("Resolving Dependant Plugins Graph", new Executable() { + @Override + public void run(Reactor reactor) throws Exception { + resolveDependantPlugins(); + } + }); }}); } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 9e5bdf8afa..d97527c1cf 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -896,9 +896,6 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve System.currentTimeMillis()-itemListenerStart,l.getClass().getName())); } - // All plugins are loaded. Now we can figure out who depends on who. - resolveDependantPlugins(); - if (LOG_STARTUP_PERFORMANCE) LOGGER.info(String.format("Took %dms for complete Jenkins startup", System.currentTimeMillis()-start)); @@ -907,19 +904,6 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve } } - private void resolveDependantPlugins() throws InterruptedException, ReactorException, IOException { - TaskGraphBuilder graphBuilder = new TaskGraphBuilder(); - - graphBuilder.add("Resolving Dependant Plugins Graph", new Executable() { - @Override - public void run(Reactor reactor) throws Exception { - pluginManager.resolveDependantPlugins(); - } - }); - - executeReactor(null, graphBuilder); - } - /** * Maintains backwards compatibility. Invoked by XStream when this object is de-serialized. */ From 1f051eb37e3c33da2ed7a1d51f08ef572c4e085e Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 28 Mar 2016 16:05:40 -0700 Subject: [PATCH 06/31] Fixed a test regression Previously, wa.contextDestroyed(null) interrupts the Jenkins. thread, and it was the 2nd reactor call that was throwing InterruptedException from this call. Now that I removed that 2nd reactor call, the init thread never actually fails. The intent of the test case is to make sure the boot failure hook is invoked, so even with this change it covers the original intent. --- test/src/test/java/hudson/util/BootFailureTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/src/test/java/hudson/util/BootFailureTest.java b/test/src/test/java/hudson/util/BootFailureTest.java index aeaf88e7d0..918c47632e 100644 --- a/test/src/test/java/hudson/util/BootFailureTest.java +++ b/test/src/test/java/hudson/util/BootFailureTest.java @@ -154,6 +154,8 @@ public class BootFailureTest { @Override public void onLoaded() { wa.contextDestroyed(null); + // make the Jenkins. thread abort + throw new Error(); } } From 28335690e0b2535cdd76cc778ffdc45a5c4f67ac Mon Sep 17 00:00:00 2001 From: Felix Belzunce Arcos Date: Wed, 6 Apr 2016 15:36:29 +0200 Subject: [PATCH 07/31] [JENKINS-32340] Enable disabled dependencies --- core/src/main/java/hudson/PluginWrapper.java | 2 +- core/src/main/resources/hudson/PluginManager/_table.js | 6 ++++++ .../src/main/resources/hudson/PluginManager/installed.jelly | 2 +- war/src/main/webapp/css/style.css | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index 00e203a2e6..15d2c188c6 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -565,7 +565,7 @@ public class PluginWrapper implements Comparable, ModelObject { // make sure dependencies exist for (Dependency d : dependencies) { PluginWrapper dependency = parent.getPlugin(d.shortName); - if (dependency == null) { + if (dependency == null || !dependency.isActive()) { missingDependencies.add(d.toString()); } else { if (dependency.isActive()) { diff --git a/core/src/main/resources/hudson/PluginManager/_table.js b/core/src/main/resources/hudson/PluginManager/_table.js index f7b8141069..374af9c99a 100644 --- a/core/src/main/resources/hudson/PluginManager/_table.js +++ b/core/src/main/resources/hudson/PluginManager/_table.js @@ -173,6 +173,12 @@ Behaviour.specify("#filter-box", '_table', 0, function(e) { function setEnableWidgetStates() { for (var i = 0; i < pluginTRs.length; i++) { + var pluginMetadata = pluginTRs[i].jenkinsPluginMetadata; + if (pluginTRs[i].hasClassName('has-dependants-but-disabled')) { + if (pluginMetadata.enableInput.checked) { + pluginTRs[i].removeClassName('has-dependants-but-disabled'); + } + } markAllDependantsDisabled(pluginTRs[i]); markHasDisabledDependencies(pluginTRs[i]); } diff --git a/core/src/main/resources/hudson/PluginManager/installed.jelly b/core/src/main/resources/hudson/PluginManager/installed.jelly index 35b2947153..22ff5f7419 100644 --- a/core/src/main/resources/hudson/PluginManager/installed.jelly +++ b/core/src/main/resources/hudson/PluginManager/installed.jelly @@ -68,7 +68,7 @@ THE SOFTWARE. ${%Uninstall} - + Date: Wed, 6 Apr 2016 15:58:01 +0200 Subject: [PATCH 08/31] Address comments --- core/src/main/java/hudson/PluginWrapper.java | 2 +- core/src/main/resources/hudson/PluginManager/_table.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index 15d2c188c6..00e203a2e6 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -565,7 +565,7 @@ public class PluginWrapper implements Comparable, ModelObject { // make sure dependencies exist for (Dependency d : dependencies) { PluginWrapper dependency = parent.getPlugin(d.shortName); - if (dependency == null || !dependency.isActive()) { + if (dependency == null) { missingDependencies.add(d.toString()); } else { if (dependency.isActive()) { diff --git a/core/src/main/resources/hudson/PluginManager/_table.js b/core/src/main/resources/hudson/PluginManager/_table.js index 374af9c99a..4176940362 100644 --- a/core/src/main/resources/hudson/PluginManager/_table.js +++ b/core/src/main/resources/hudson/PluginManager/_table.js @@ -176,7 +176,7 @@ Behaviour.specify("#filter-box", '_table', 0, function(e) { var pluginMetadata = pluginTRs[i].jenkinsPluginMetadata; if (pluginTRs[i].hasClassName('has-dependants-but-disabled')) { if (pluginMetadata.enableInput.checked) { - pluginTRs[i].removeClassName('has-dependants-but-disabled'); + pluginTRs[i].removeClassName('has-dependants-but-disabled'); } } markAllDependantsDisabled(pluginTRs[i]); From bfeeec1d68f5e071a52085d61cc5de379dbe48e3 Mon Sep 17 00:00:00 2001 From: kzantow Date: Wed, 13 Apr 2016 09:55:49 -0400 Subject: [PATCH 09/31] JENKINS-33950 - dependencies may be installed multiple times unnecessarily, resulting in erroneous restart required indicators --- .../main/java/hudson/model/UpdateCenter.java | 51 +++++++++++++++++++ .../model/UpdateCenter/DownloadJob/row.jelly | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index ceddcb0b20..c90dd5adb3 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1414,6 +1414,15 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas @Exported public abstract String getName(); + /** + * Any additional detail about the plugin which might be displayed to the user, + * e.g. a version or URL + */ + @CheckForNull + public String getDetail() { + return null; + } + /** * Called when the whole thing went successfully. */ @@ -1560,6 +1569,15 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } } + /** + * Indicates that the plugin was successfully installed. + */ + public class Skipped extends InstallationStatus { + @Override public boolean isSuccess() { + return true; + } + } + /** * Indicates that the plugin is waiting for its turn for installation. */ @@ -1649,6 +1667,11 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas public String getName() { return plugin.getDisplayName(); } + + @Override + public String getDetail() { + return plugin.version; + } @Override public void _run() throws IOException, InstallationStatus { @@ -1663,6 +1686,11 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } finally { SecurityContextHolder.setContext(oldContext); } + } else if (isAlreadyInstalling()) { + status = new UpdateCenter.DownloadJob.Skipped(); + // check to see if the plugin is already installed at the same version and skip it + LOGGER.warning("Skipping duplicate install of: " + plugin.getDisplayName() + "@" + plugin.version); + return; } if (dynamicLoad) { @@ -1678,6 +1706,29 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } } + /** + * Indicates there is another installation job for this plugin + * @since TODO + */ + protected boolean isAlreadyInstalling() { + synchronized(UpdateCenter.this) { + for (UpdateCenterJob job : getJobs()) { + if (job == this) { + // oldest entries first, if we reach this instance, + // we need it to continue installing + return false; + } + if (job instanceof InstallationJob) { + InstallationJob ij = (InstallationJob)job; + if (ij.plugin.equals(plugin) && ij.plugin.version.equals(plugin.version)) { + return true; + } + } + } + return false; + } + } + protected void onSuccess() { pm.pluginUploaded = true; } diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly index 1ea067b9f0..0f48d4b60c 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly @@ -25,7 +25,7 @@ THE SOFTWARE. - ${it.name} + ${it.name} (${it.detail}) From dd226f73b0d63105acb472484c0da8f4b86d8ecc Mon Sep 17 00:00:00 2001 From: kzantow Date: Sat, 16 Apr 2016 20:33:39 -0400 Subject: [PATCH 10/31] Revert unnecessary UI change, address possible synchronization issue when skipping a dependent plugin but the previous dependency hasn't yet been installed --- .../main/java/hudson/model/UpdateCenter.java | 48 +++++++++++-------- .../model/UpdateCenter/DownloadJob/row.jelly | 2 +- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index c90dd5adb3..48509e49c8 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1414,15 +1414,6 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas @Exported public abstract String getName(); - /** - * Any additional detail about the plugin which might be displayed to the user, - * e.g. a version or URL - */ - @CheckForNull - public String getDetail() { - return null; - } - /** * Called when the whole thing went successfully. */ @@ -1667,14 +1658,17 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas public String getName() { return plugin.getDisplayName(); } - - @Override - public String getDetail() { - return plugin.version; - } @Override public void _run() throws IOException, InstallationStatus { + if (isAlreadyInstalling()) { + // Do this first so we can avoid duplicate downloads, too + // check to see if the plugin is already installed at the same version and skip it + LOGGER.warning("Skipping duplicate install of: " + plugin.getDisplayName() + "@" + plugin.version); + //throw new Skipped(); // TODO set skipped once we have a status indicator for it + return; + } + try { super._run(); // if this is a bundled plugin, make sure it won't get overwritten @@ -1686,11 +1680,6 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } finally { SecurityContextHolder.setContext(oldContext); } - } else if (isAlreadyInstalling()) { - status = new UpdateCenter.DownloadJob.Skipped(); - // check to see if the plugin is already installed at the same version and skip it - LOGGER.warning("Skipping duplicate install of: " + plugin.getDisplayName() + "@" + plugin.version); - return; } if (dynamicLoad) { @@ -1704,6 +1693,16 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas } else { throw new SuccessButRequiresRestart(Messages._UpdateCenter_DownloadButNotActivated()); } + } finally { + synchronized(this) { + // There may be other threads waiting on completion + LOGGER.fine("Install complete for: " + plugin.getDisplayName() + "@" + plugin.version); + // some status other than Installing or Downloading needs to be set here + // {@link #isAlreadyInstalling()}, it will be overwritten by {@link DownloadJob#run()} + status = new Skipped(); + notifyAll(); + } + } } /** @@ -1721,6 +1720,17 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas if (job instanceof InstallationJob) { InstallationJob ij = (InstallationJob)job; if (ij.plugin.equals(plugin) && ij.plugin.version.equals(plugin.version)) { + // wait until other install is completed + synchronized(ij) { + if(ij.status instanceof Installing || ij.status instanceof Pending) { + try { + LOGGER.fine("Waiting for other plugin install of: " + plugin.getDisplayName() + "@" + plugin.version); + ij.wait(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } return true; } } diff --git a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly index 0f48d4b60c..1ea067b9f0 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/DownloadJob/row.jelly @@ -25,7 +25,7 @@ THE SOFTWARE. - ${it.name} (${it.detail}) + ${it.name} From 6c76ce71d2bfbcb32655a52da6d76cd99b09b1f4 Mon Sep 17 00:00:00 2001 From: Waldyr Date: Mon, 18 Apr 2016 02:25:08 -0300 Subject: [PATCH 11/31] Add pt_BR translations --- .../patternJobNamingStrategy_pt_BR.html | 7 +++++ .../webapp/help/tools/help-label_pt_BR.html | 5 ++++ .../tool-location-node-property_pt_BR.html | 4 +++ .../view-config/filter-executors_pt_BR.html | 26 +++++++++++++++++++ .../help/view-config/filter-queue_pt_BR.html | 26 +++++++++++++++++++ 5 files changed, 68 insertions(+) create mode 100644 war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html create mode 100644 war/src/main/webapp/help/tools/help-label_pt_BR.html create mode 100644 war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html create mode 100644 war/src/main/webapp/help/view-config/filter-executors_pt_BR.html create mode 100644 war/src/main/webapp/help/view-config/filter-queue_pt_BR.html diff --git a/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html b/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html new file mode 100644 index 0000000000..90a027094d --- /dev/null +++ b/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html @@ -0,0 +1,7 @@ +
+ Defina um padrão (expressão regular) para checar se o nome de uma tarefa é válido ou não. +

+ Forçando a checagem em tarefas que já existe, vai permitir que você reforce uma convenção - e.g. mesmo que os usuários não mudem o nome, + A tarefa vai ser validada com o padrão definido em cada submissão e atualização até que o nome confirme.
+ Essa opção não afetará a execução de tarefas com nomes não complascentes. Isto apenas controla o processo de validação no momento de salvar as configurações de uma tarefa. +

diff --git a/war/src/main/webapp/help/tools/help-label_pt_BR.html b/war/src/main/webapp/help/tools/help-label_pt_BR.html new file mode 100644 index 0000000000..6e8507248b --- /dev/null +++ b/war/src/main/webapp/help/tools/help-label_pt_BR.html @@ -0,0 +1,5 @@ +
+ Label opcional para restringir o uso deste método de instalação. + Esta label pode ser uma expressão (por exemplo: "linux&&x64" or "windows&&x86"). + Somente nós que validaram esta label (ou expressão) irão ser considerados. +
diff --git a/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html b/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html new file mode 100644 index 0000000000..f80966b3be --- /dev/null +++ b/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html @@ -0,0 +1,4 @@ +
+ Você pode especificar a localização de certas ferramentas, sobrescrevendo a configuração global. + (Você pode preferir o uso de instaladores automaticos de ferramentas como alternativa, removendo a necessidade de configurar cada nó separadamente) +
diff --git a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html new file mode 100644 index 0000000000..4a84aed06b --- /dev/null +++ b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html @@ -0,0 +1,26 @@ + +
+ Caso selecionado, apenas executores de build que podem executar tarefas nesta view aparecerão. +
diff --git a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html b/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html new file mode 100644 index 0000000000..ffe7eb59d4 --- /dev/null +++ b/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html @@ -0,0 +1,26 @@ + +
+ Caso selecionado, apenas tarefas nesta view aparecerão na fila. +
From 6b2a60506cb57afd9d3e4bb203ac71ffc8d2469b Mon Sep 17 00:00:00 2001 From: kzantow Date: Fri, 22 Apr 2016 10:49:53 -0400 Subject: [PATCH 12/31] Pre-commit tweaks --- .../main/java/hudson/model/UpdateCenter.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 4f0fe53bae..c58d2fb3b8 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1665,7 +1665,7 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas @Override public void _run() throws IOException, InstallationStatus { - if (isAlreadyInstalling()) { + if (wasInstalled()) { // Do this first so we can avoid duplicate downloads, too // check to see if the plugin is already installed at the same version and skip it LOGGER.warning("Skipping duplicate install of: " + plugin.getDisplayName() + "@" + plugin.version); @@ -1673,30 +1673,30 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas return; } try { - super._run(); + super._run(); - // if this is a bundled plugin, make sure it won't get overwritten - PluginWrapper pw = plugin.getInstalled(); - if (pw!=null && pw.isBundled()) { - SecurityContext oldContext = ACL.impersonate(ACL.SYSTEM); - try { - pw.doPin(); - } finally { - SecurityContextHolder.setContext(oldContext); + // if this is a bundled plugin, make sure it won't get overwritten + PluginWrapper pw = plugin.getInstalled(); + if (pw!=null && pw.isBundled()) { + SecurityContext oldContext = ACL.impersonate(ACL.SYSTEM); + try { + pw.doPin(); + } finally { + SecurityContextHolder.setContext(oldContext); + } } - } - if (dynamicLoad) { - try { - pm.dynamicLoad(getDestination()); - } catch (RestartRequiredException e) { - throw new SuccessButRequiresRestart(e.message); - } catch (Exception e) { - throw new IOException("Failed to dynamically deploy this plugin",e); + if (dynamicLoad) { + try { + pm.dynamicLoad(getDestination()); + } catch (RestartRequiredException e) { + throw new SuccessButRequiresRestart(e.message); + } catch (Exception e) { + throw new IOException("Failed to dynamically deploy this plugin",e); + } + } else { + throw new SuccessButRequiresRestart(Messages._UpdateCenter_DownloadButNotActivated()); } - } else { - throw new SuccessButRequiresRestart(Messages._UpdateCenter_DownloadButNotActivated()); - } } finally { synchronized(this) { // There may be other threads waiting on completion @@ -1713,7 +1713,7 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas * Indicates there is another installation job for this plugin * @since TODO */ - protected boolean isAlreadyInstalling() { + protected boolean wasInstalled() { synchronized(UpdateCenter.this) { for (UpdateCenterJob job : getJobs()) { if (job == this) { From 5e57f5aaec8a7b026cdf4cb9e9dc9613c6bae7fc Mon Sep 17 00:00:00 2001 From: Tomas Date: Sat, 23 Apr 2016 13:14:38 +0300 Subject: [PATCH 13/31] Lithuanian translation updates --- .../model/AllView/newViewDetail_lt.properties | 1 + .../hudson/model/AllView/noJob_lt.properties | 5 + .../hudson/model/Messages_lt.properties | 364 +++++++++++++++++- .../authenticate-security-token_lt.properties | 9 + .../setupWizardFirstUser_lt.properties | 1 + .../UpgradeWizard/footer_lt.properties | 3 + .../install/pluginSetupWizard_lt.properties | 54 +++ 7 files changed, 435 insertions(+), 2 deletions(-) create mode 100644 core/src/main/resources/hudson/model/AllView/newViewDetail_lt.properties create mode 100644 core/src/main/resources/hudson/model/AllView/noJob_lt.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_lt.properties create mode 100644 core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_lt.properties create mode 100644 core/src/main/resources/jenkins/install/UpgradeWizard/footer_lt.properties create mode 100644 core/src/main/resources/jenkins/install/pluginSetupWizard_lt.properties diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_lt.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_lt.properties new file mode 100644 index 0000000000..3080ff7a0b --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_lt.properties @@ -0,0 +1 @@ +blurb=\u0160is rodinys rodo visus Jenkinso darbus. diff --git a/core/src/main/resources/hudson/model/AllView/noJob_lt.properties b/core/src/main/resources/hudson/model/AllView/noJob_lt.properties new file mode 100644 index 0000000000..be9cc5dea2 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/noJob_lt.properties @@ -0,0 +1,5 @@ +newJob=Pra\u0161ome sukurti nauj\u0105 darb\u0105, kad prad\u0117tum\u0117te. + +login=Prisijunkite, kad gal\u0117tumet kurti naujus darbus. + +signup=Jei dar neturite paskyros, galite dabar u\u017esiregistruoti. diff --git a/core/src/main/resources/hudson/model/Messages_lt.properties b/core/src/main/resources/hudson/model/Messages_lt.properties index f29e8e9d88..7ab30a731f 100644 --- a/core/src/main/resources/hudson/model/Messages_lt.properties +++ b/core/src/main/resources/hudson/model/Messages_lt.properties @@ -1,3 +1,363 @@ -ParametersDefinitionProperty.DisplayName=\u0160is darbas yra parametrizuotas +AbstractBuild.BuildingRemotely=Nutol\u0119s vykdymas ma\u0161inoje {0} +AbstractBuild.BuildingOnMaster=Vykdoma pagrindin\u0117je ma\u0161inoje +AbstractBuild_Building=Vykdomas +AbstractBuild.BuildingInWorkspace=\ darbalaukyje {0} +AbstractBuild.KeptBecause=Vykdymas u\u017elaikytas d\u0117l {0}. -FreeStyleProject.Description=Pagrindin\u0117 Jenkins funkcija. Jenkins sukonstruos j\u016Bs\u0173 projekt\u0105, sujungdamas betkok\u012F SCM su betkokia konstravimo sistema. \u0160is darbo tipas gali b\u016Bt pritaikytas ne tik program\u0173 konstravimui. \ No newline at end of file +AbstractItem.NoSuchJobExists=N\u0117ra tokio darbo \u201e{0}\u201c. Gal tur\u0117jote omenyje \u201e{1}\u201c? +AbstractItem.NoSuchJobExistsWithoutSuggestion=N\u0117ra tokio darbo \u201e{0}\u201c. +AbstractItem.Pronoun=Elementas +AbstractProject.AssignedLabelString_NoMatch_DidYouMean=N\u0117ra agento/debesies, atitinkan\u010dio \u0161\u012f argument\u0105. Ar tur\u0117jote omenyje \u201e{1}\u201c, o ne \u201e{0}\u201c? +AbstractProject.NewBuildForWorkspace=Planuojamas naujas vykdymas, kad b\u016bt\u0173 gautas darbalaukis. +AbstractProject.AwaitingBuildForWorkspace=Laukiama, kol vykdymas gaus darbalauk\u012f. +AbstractProject.AwaitingWorkspaceToComeOnline=Mums reikia suplanuoti nauj\u0105 vykdym\u0105, kad gautume darbalauk\u012f, bet laukiame {0}ms, tik\u0117damiesi, kad kuris nors greitai atsilaisvins +AbstractProject.Pronoun=Projektas +AbstractProject.Aborted=Nutrauktas +AbstractProject.UpstreamBuildInProgress=Auk\u0161tesnis projektas {0} jau vykdomas. +AbstractProject.DownstreamBuildInProgress=\u017demesnis projektas {0} jau vykdomas. +AbstractProject.Disabled=Vykdymas i\u0161jungtas +AbstractProject.NoBuilds=N\u0117ra egzistuojan\u010dio vykdymo. Kuriamas naujas. +AbstractProject.NoSCM=Be SCM +AbstractProject.NoWorkspace=N\u0117ra prieinam\u0173 darbalauki\u0173, tai negalima patikrinti atnaujinim\u0173. +AbstractProject.WorkspaceTitle={0} darbalaukis +AbstractProject.WorkspaceTitleOnComputer={0} darbalaukis, esantis {1} +AbstractProject.PollingABorted=SCM traukimas nutrauktas +AbstractProject.ScmAborted=SCM i\u0161traukimas nutrauktas +AbstractProject.WorkspaceOffline=Darbalaukis atjungtas. +AbstractProject.BuildPermission.Description=\ + \u0160i teis\u0117 leid\u017eia prad\u0117ti nauj\u0105 vykdym\u0105. +AbstractProject.WorkspacePermission.Description=\ + \u0160i teis\u0117 leid\u017eia i\u0161traukti darbalaukio turin\u012f, kur\u012f \ + Jenkinsas i\u0161trauk\u0117 vykdymo metu. Jei nenorite kad naudotojas prieit\u0173 prie \ + darbalaukio fail\u0173 (pvz. prie i\u0161eities kodo paimto i\u0161 SCM arba tarpini\u0173 k\u016brimo \ + rezultat\u0173) per darbalaukio nar\u0161ykl\u0119, atimkite \u0161i\u0105 teis\u0119. +AbstractProject.ExtendedReadPermission.Description=\ + \u0160i teis\u0117 leid\u017eia tik-skaitymo pri\u0117jim\u0105 prie projekto konfig\u016bracijos. \u017dinokite, \ + kad jautri vykdymo informacija, tokia kaip slapta\u017eod\u017eiai, bus \ + matoma pla\u010diai auditorijai, jei suteiksite \u0161ias teises. +AbstractProject.DiscoverPermission.Description=\ + \u0160i teis\u0117 duoda darb\u0173 tyrimo galimyb\u0119. Ma\u017eiau nei skaitymo teis\u0117, ji leid\u017eia jums \ + persi\u0173sti anoniminius naudotojus \u012f prisijungimo puslap\u012f, kai jie bando jungtis prie darbo url. \ + Be jo, jie tiesiog gaut\u0173 404 klaid\u0105 ir negal\u0117t\u0173 su\u017einoti projekt\u0173 pavadinim\u0173. +# WipeOutPermission is only visible in the security configuration if the system property +# hudson.security.WipeOutPermission is set to true +AbstractProject.WipeOutPermission.Description=\ + \u0160i teis\u0117 leid\u017eia panaikinti darbalaukio turin\u012f. +AbstractProject.CancelPermission.Description=\ + \u0160i teis\u0117 leid\u017eia panaikinti suplanuot\u0105 arba nutraukti vykdom\u0105 darb\u0105. +AbstractProject.AssignedLabelString.InvalidBooleanExpression=\ + Netinkama login\u0117 i\u0161rai\u0161ka: {0} +AbstractProject.AssignedLabelString.NoMatch=\ + N\u0117ra \u0161io priskyrimo atitinkan\u010dio agento/debesies +AbstractProject.CustomWorkspaceEmpty=Savas darbalaukis tu\u0161\u010dias. +AbstractProject.LabelLink=Etiket\u0119 aptarnauja {2,choice,0#no nodes|1#1 node|1<{2} nodes}{3,choice,0#|1# and 1 cloud|1< and {3} clouds} + +Api.MultipleMatch=XPath "{0}" atitiko {1} mazgus. \ + Sukurkite XPath, kuris atitinka tik vien\u0105 mazg\u0105 arba naudokite \u201eapgaubiant\u012f\u201c u\u017eklausos parametr\u0105, kuris visus juos apgaubt\u0173 po \u0161akniniu elementu. +Api.NoXPathMatch=XPath {0} neatitiko + +BallColor.Aborted=Nutrauktas +BallColor.Disabled=I\u0161jungtas +BallColor.Failed=Nepavyko +BallColor.InProgress=Vykdomas +BallColor.NotBuilt=Nekurtas +BallColor.Pending=Laukia +BallColor.Success=S\u0117km\u0117 +BallColor.Unstable=Nestabilus + +Build.post_build_steps_failed=Post-build steps failed +CLI.clear-queue.shortDescription=Clears the build queue. +CLI.disable-job.shortDescription=Disables a job. +CLI.enable-job.shortDescription=Enables a job. +CLI.disconnect-node.shortDescription=Disconnects from a node. +CLI.connect-node.shortDescription=Reconnect to a node. +CLI.offline-node.shortDescription=Stop using a node for performing builds temporarily, until the next "online-node" command. +CLI.wait-node-online.shortDescription=Wait for a node to become online. +CLI.wait-node-offline.shortDescription=Wait for a node to become offline. + +Computer.Caption=Agent {0} +Computer.NoSuchSlaveExists=No such agent "{0}" exists. Did you mean "{1}"? +Computer.Permissions.Title=Agent +Computer.ExtendedReadPermission.Description=This permission allows users to read agent configuration. +Computer.ConfigurePermission.Description=This permission allows users to configure agents. +Computer.DeletePermission.Description=This permission allows users to delete existing agents. +Computer.CreatePermission.Description=This permission allows users to create agents. +Computer.ConnectPermission.Description=This permission allows users to connect agents or mark agents as online. +Computer.DisconnectPermission.Description=This permission allows users to disconnect agents or mark agents as temporarily offline. +Computer.BuildPermission.Description=This permission allows users to run jobs as them on agents. +Computer.BadChannel=Agent node offline or not a remote channel (such as master node). + +ComputerSet.NoSuchSlave=No such agent: {0} +ComputerSet.SlaveAlreadyExists=Agent called \u2018{0}\u2019 already exists +ComputerSet.SpecifySlaveToCopy=Specify which agent to copy +ComputerSet.DisplayName=Nodes + +Descriptor.From=(from {0}) + +Executor.NotAvailable=N/A + +FreeStyleProject.DisplayName=Freestyle project +FreeStyleProject.Description=\ + Pagrindin\u0117 Jenkinso funkcija. Jenkinsas sukurs j\u016bs\u0173 projekt\u0105, kombinuojant bet koki\u0105 SCM su bet kokia k\u016brimo sistema, \ + ir visa tai galima naudoti neb\u016btinai program\u0173 k\u016brimui. + +HealthReport.EmptyString= + +Hudson.BadPortNumber=Bad port number {0} +Hudson.Computer.Caption=Master +Hudson.Computer.DisplayName=master +Hudson.ControlCodeNotAllowed=No control code is allowed: {0} +Hudson.DisplayName=Jenkins +Hudson.JobAlreadyExists=A job already exists with the name \u2018{0}\u2019 +Hudson.NoJavaInPath=java is not in your PATH. Maybe you need to configure JDKs? +Hudson.NoName=No name is specified +Hudson.NoSuchDirectory=No such directory: {0} +Hudson.NodeBeingRemoved=Node is being removed +Hudson.NotAPlugin={0} is not a Jenkins plugin +Hudson.NotJDKDir={0} doesn\u2019t look like a JDK directory +Hudson.Permissions.Title=Overall +Hudson.USER_CONTENT_README=Files in this directory will be served under your http://server/jenkins/userContent/ +Hudson.UnsafeChar=\u2018{0}\u2019 is an unsafe character +Hudson.ViewAlreadyExists=A view already exists with the name "{0}" +Hudson.ViewName=All +Hudson.NotANumber=Not a number +Hudson.NotAPositiveNumber=Not a positive number +Hudson.NotANonNegativeNumber=Number may not be negative +Hudson.NotANegativeNumber=Not a negative number +Hudson.NotUsesUTF8ToDecodeURL=\ + Your container doesn\u2019t use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, \ + this will cause problems. \ + See Containers and \ + Tomcat i18n for more details. +Hudson.AdministerPermission.Description=\ + This permission grants the ability to make system-wide configuration changes, \ + as well as perform highly sensitive operations that amounts to full local system access \ + (within the scope granted by the underlying OS.) +Hudson.ReadPermission.Description=\ + The read permission is necessary for viewing almost all pages of Jenkins. \ + This permission is useful when you don\u2019t want unauthenticated users to see \ + Jenkins pages: revoke this permission from the anonymous user, then \ + add "authenticated" pseudo-user and grant the read access. +Hudson.RunScriptsPermission.Description=\ + Required for running scripts inside the Jenkins process, for example via the Groovy console or Groovy CLI command. +Hudson.NodeDescription=the master Jenkins node + +Item.Permissions.Title=Job +Item.CREATE.description=Create a new job. +Item.DELETE.description=Delete a job. +Item.CONFIGURE.description=Change the configuration of a job. +Item.READ.description=See a job. (You may deny this permission but allow Discover to force an anonymous user to log in to see the job.) + +Job.AllRecentBuildFailed=All recent builds failed. +Job.BuildStability=Build stability: {0} +Job.NOfMFailed={0} out of the last {1} builds failed. +Job.NoRecentBuildFailed=No recent builds failed. +Job.Pronoun=Project +Job.minutes=mins + +Job.you_must_use_the_save_button_if_you_wish=You must use the Save button if you wish to rename a job. +Label.GroupOf=group of {0} +Label.InvalidLabel=invalid label +Label.ProvisionedFrom=Provisioned from {0} +ManageJenkinsAction.DisplayName=Tvarkyti Jenkins\u0105 +MultiStageTimeSeries.EMPTY_STRING= +Queue.AllNodesOffline=All nodes of label \u2018{0}\u2019 are offline +Queue.LabelHasNoNodes=There are no nodes with the label \u2018{0}\u2019 +Queue.BlockedBy=Blocked by {0} +Queue.HudsonIsAboutToShutDown=Jenkins is about to shut down +Queue.InProgress=A build is already in progress +Queue.InQuietPeriod=In the quiet period. Expires in {0} +Queue.NodeOffline={0} is offline +Queue.Unknown=??? +Queue.WaitingForNextAvailableExecutor=Waiting for next available executor +Queue.WaitingForNextAvailableExecutorOn=Waiting for next available executor on {0} +Queue.init=Restoring the build queue + +ResultTrend.Aborted=Aborted +ResultTrend.Failure=Failure +ResultTrend.Fixed=Fixed +ResultTrend.NotBuilt=Not built +ResultTrend.NowUnstable=Now unstable +ResultTrend.StillFailing=Still failing +ResultTrend.StillUnstable=Still unstable +ResultTrend.Success=Success +ResultTrend.Unstable=Unstable +Run._is_waiting_for_a_checkpoint_on_={0} is waiting for a checkpoint on {1} +Run.BuildAborted=Build was aborted +Run.MarkedExplicitly=This record is explicitly marked to be kept. +Run.Permissions.Title=Run +Run.running_as_=Running as {0} +Run.UnableToDelete=Unable to delete {0}: {1} +Run.DeletePermission.Description=\ + This permission allows users to manually delete specific builds from the build history. +Run.UpdatePermission.Description=\ + This permission allows users to update description and other properties of a build, \ + for example to leave notes about the cause of a build failure. +Run.ArtifactsPermission.Description=\ + This permission grants the ability to retrieve the artifacts produced by \ + builds. If you don\u2019t want an user to access the artifacts, you can do so by \ + revoking this permission. +Run.InProgressDuration={0} and counting +Run.NotStartedYet=Not started yet +Run.ArtifactsBrowserTitle=Artifacts of {0} {1} + +Run.Summary.Stable=stable +Run.Summary.Unstable=unstable +Run.Summary.Aborted=aborted +Run.Summary.NotBuilt=not built +Run.Summary.BackToNormal=back to normal +Run.Summary.BrokenForALongTime=broken for a long time +Run.Summary.BrokenSinceThisBuild=broken since this build +Run.Summary.BrokenSince=broken since build {0} +Run.Summary.Unknown=? + +Slave.InvalidConfig.Executors=Invalid agent configuration for {0}. Invalid # of executors. +Slave.InvalidConfig.NoName=Invalid agent configuration. Name is empty +Slave.InvalidConfig.NoRemoteDir=Invalid agent configuration for {0}. No remote directory given +Slave.Launching={0} Launching agent +Slave.Network.Mounted.File.System.Warning=Are you sure you want to use network mounted file system for FS root? Note that this directory does not need to be visible to the master. +Slave.Remote.Director.Mandatory=Remote directory is mandatory +Slave.Terminated={0} agent was terminated +Slave.Remote.Relative.Path.Warning=Are you sure you want to use a relative path for the FS root? Note that relative \ + paths require that you can assure that the selected launcher provides a consistent current working directory. Using \ + an absolute path is highly recommended. +Slave.UnableToLaunch=Unable to launch the agent for {0}{1} +Slave.UnixSlave=This is a Unix agent +Slave.WindowsSlave=This is a Windows agent + +TopLevelItemDescriptor.NotApplicableIn={0} items are not applicable within {1} + +UpdateCenter.DownloadButNotActivated=Downloaded Successfully. Will be activated during the next boot +UpdateCenter.n_a=N/A +View.Permissions.Title=View +View.CreatePermission.Description=\ + This permission allows users to create new views. +View.DeletePermission.Description=\ + This permission allows users to delete existing views. +View.ConfigurePermission.Description=\ + This permission allows users to change the configuration of views. +View.ReadPermission.Description=\ + This permission allows users to see views (implied by generic read access). +View.MissingMode=No view type is specified + +UpdateCenter.Status.CheckingInternet=Checking internet connectivity +UpdateCenter.Status.CheckingJavaNet=Checking update center connectivity +UpdateCenter.Status.Success=Success +UpdateCenter.Status.UnknownHostException=\ + Failed to resolve host name {0}. \ + Perhaps you need to configure HTTP proxy? +UpdateCenter.Status.ConnectionFailed=\ + Failed to connect to {0}. \ + Perhaps you need to configure HTTP proxy? +UpdateCenter.init=Initialing update center +UpdateCenter.PluginCategory.android=Android Development +UpdateCenter.PluginCategory.builder=Build Tools +UpdateCenter.PluginCategory.buildwrapper=Build Wrappers +UpdateCenter.PluginCategory.cli=Command Line Interface +UpdateCenter.PluginCategory.cloud=Cloud Providers +UpdateCenter.PluginCategory.cluster=Cluster Management and Distributed Build +UpdateCenter.PluginCategory.database=Database +UpdateCenter.PluginCategory.deployment=Deployment +UpdateCenter.PluginCategory.devops=DevOps +UpdateCenter.PluginCategory.dotnet=.NET Development +UpdateCenter.PluginCategory.external=External Site/Tool Integrations +UpdateCenter.PluginCategory.groovy-related=Groovy-related +UpdateCenter.PluginCategory.ios=iOS Development +UpdateCenter.PluginCategory.library=Library plugins (for use by other plugins) +UpdateCenter.PluginCategory.listview-column=List view columns +UpdateCenter.PluginCategory.maven=Maven +UpdateCenter.PluginCategory.misc=Miscellaneous +UpdateCenter.PluginCategory.notifier=Build Notifiers +UpdateCenter.PluginCategory.page-decorator=Page Decorators +UpdateCenter.PluginCategory.parameter=Build Parameters +UpdateCenter.PluginCategory.post-build=Other Post-Build Actions +UpdateCenter.PluginCategory.python=Python Development +UpdateCenter.PluginCategory.report=Build Reports +UpdateCenter.PluginCategory.ruby=Ruby Development +UpdateCenter.PluginCategory.runcondition=RunConditions for use by the Run Condition plugin +UpdateCenter.PluginCategory.scala=Scala Development +UpdateCenter.PluginCategory.scm=Source Code Management +UpdateCenter.PluginCategory.scm-related=Source Code Management related +UpdateCenter.PluginCategory.security=Security +UpdateCenter.PluginCategory.slaves=Agent Launchers and Controllers +UpdateCenter.PluginCategory.test=Testing +UpdateCenter.PluginCategory.trigger=Build Triggers +UpdateCenter.PluginCategory.ui=User Interface +UpdateCenter.PluginCategory.upload=Artifact Uploaders +UpdateCenter.PluginCategory.user=Authentication and User Management +UpdateCenter.PluginCategory.view=Views +UpdateCenter.PluginCategory.must-be-labeled=Uncategorized +UpdateCenter.PluginCategory.unrecognized=Misc ({0}) + +Permalink.LastBuild=Last build +Permalink.LastStableBuild=Last stable build +Permalink.LastUnstableBuild=Last unstable build +Permalink.LastUnsuccessfulBuild=Last unsuccessful build +Permalink.LastSuccessfulBuild=Last successful build +Permalink.LastFailedBuild=Last failed build +Permalink.LastCompletedBuild=Last completed build + +ParameterAction.DisplayName=Parameters +ParametersDefinitionProperty.DisplayName=This project is parameterized +StringParameterDefinition.DisplayName=String Parameter +TextParameterDefinition.DisplayName=Multi-line String Parameter +FileParameterDefinition.DisplayName=File Parameter +BooleanParameterDefinition.DisplayName=Boolean Parameter +ChoiceParameterDefinition.DisplayName=Choice Parameter +ChoiceParameterDefinition.MissingChoices=Requires Choices. +RunParameterDefinition.DisplayName=Run Parameter +PasswordParameterDefinition.DisplayName=Password Parameter + +Node.BecauseNodeIsReserved={0} is reserved for jobs with matching label expression +Node.BecauseNodeIsNotAcceptingTasks={0} is not accepting tasks +Node.LabelMissing={0} doesn\u2019t have label {1} +Node.LackingBuildPermission={0} doesn\u2019t have a permission to run on {1} +Node.Mode.NORMAL=Use this node as much as possible +Node.Mode.EXCLUSIVE=Only build jobs with label expressions matching this node + +ListView.DisplayName=List View + +MyView.DisplayName=My View + +LoadStatistics.Legends.DefinedExecutors=Defined executors +LoadStatistics.Legends.OnlineExecutors=Online executors +LoadStatistics.Legends.ConnectingExecutors=Connecting executors +LoadStatistics.Legends.TotalExecutors=Total executors +LoadStatistics.Legends.BusyExecutors=Busy executors +LoadStatistics.Legends.IdleExecutors=Idle executors +LoadStatistics.Legends.AvailableExecutors=Available executors +LoadStatistics.Legends.QueueLength=Queue length + +Cause.LegacyCodeCause.ShortDescription=Legacy code started this job. No cause information is available +Cause.UpstreamCause.ShortDescription=Started by upstream project "{0}" build number {1} +Cause.UpstreamCause.CausedBy=originally caused by: +Cause.UserCause.ShortDescription=Started by user {0} +Cause.UserIdCause.ShortDescription=Started by user {0} +Cause.RemoteCause.ShortDescription=Started by remote host {0} +Cause.RemoteCause.ShortDescriptionWithNote=Started by remote host {0} with note: {1} + +ProxyView.NoSuchViewExists=Global view {0} does not exist +ProxyView.DisplayName=Include a global view + +MyViewsProperty.DisplayName=Mano rodiniai +MyViewsProperty.GlobalAction.DisplayName=Mano rodiniai +MyViewsProperty.ViewExistsCheck.NotExist=A view with name {0} does not exist +MyViewsProperty.ViewExistsCheck.AlreadyExists=A view with name {0} already exists + +CLI.restart.shortDescription=Restart Jenkins +CLI.safe-restart.shortDescription=Safely restart Jenkins +CLI.keep-build.shortDescription=Mark the build to keep the build forever. +CLI.quiet-down.shortDescription=Quiet down Jenkins, in preparation for a restart. Don\u2019t start any builds. +CLI.cancel-quiet-down.shortDescription=Cancel the effect of the "quiet-down" command. +CLI.reload-configuration.shortDescription=Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk. + +BuildAuthorizationToken.InvalidTokenProvided=Invalid token provided. + +Jenkins.CheckDisplayName.NameNotUniqueWarning=The display name, "{0}", is used as a name by a job and could cause confusing search results. +Jenkins.CheckDisplayName.DisplayNameNotUniqueWarning=The display name, "{0}", is already in use by another job and could cause confusion and delay. + +Jenkins.NotAllowedName="{0}" is not allowed name +Jenkins.IsRestarting=Jenkins is restarting + +User.IllegalUsername="{0}" is prohibited as a username for security reasons. +User.IllegalFullname="{0}" is prohibited as a full name for security reasons. diff --git a/core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_lt.properties b/core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_lt.properties new file mode 100644 index 0000000000..04d18031fd --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/authenticate-security-token_lt.properties @@ -0,0 +1,9 @@ +authenticate-security-token.getting.started=\u012evadas +authenticate-security-token.unlock.jenkins=Atrakinti Jenkins\u0105 +jenkins.install.findSecurityTokenMessage=Kad u\u017etikrintum\u0117me kad Jenkins\u0105 saugiai paruo\u0161\u0117 administratorius, \ +slapta\u017eodis buvo \u012fra\u0161ytas \u012f \u017eurnal\u0105 (ne\u017einote, kur j\u012f rasti?) ir \u0161\u012f fail\u0105 serveryje:

{0}

+authenticate-security-token.copy.password=Pra\u0161ome nukopijuoti slapta\u017eiod\u012f i\u0161 bet kurios vietos \u012f \u017eemiau esant\u012f lauk\u0105. +authenticate-security-token.error=KLAIDA: +authenticate-security-token.password.incorrect=\u012evestas neteisingas slapta\u017eodis, pra\u0161ome patikrinti fail\u0105 ir rasti teising\u0105 slapta\u017eod\u012f +authenticate-security-token.password.administrator=Administratoriaus slapta\u017eodis +authenticate-security-token.continue=T\u0119sti diff --git a/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_lt.properties b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_lt.properties new file mode 100644 index 0000000000..140b61fc04 --- /dev/null +++ b/core/src/main/resources/jenkins/install/SetupWizard/setupWizardFirstUser_lt.properties @@ -0,0 +1 @@ +Create\ First\ Admin\ User=Sukurti pirm\u0105 administratoriaus naudotoj\u0105 diff --git a/core/src/main/resources/jenkins/install/UpgradeWizard/footer_lt.properties b/core/src/main/resources/jenkins/install/UpgradeWizard/footer_lt.properties new file mode 100644 index 0000000000..f1147d3e4f --- /dev/null +++ b/core/src/main/resources/jenkins/install/UpgradeWizard/footer_lt.properties @@ -0,0 +1,3 @@ +msg.before=Jus sveikina Jenkins 2!\u0020 +msg.link=\u012ediegti naujas savybes +msg.after=\u0020kad baigtum\u0117te atnaujinim\u0105 diff --git a/core/src/main/resources/jenkins/install/pluginSetupWizard_lt.properties b/core/src/main/resources/jenkins/install/pluginSetupWizard_lt.properties new file mode 100644 index 0000000000..3ddc015a18 --- /dev/null +++ b/core/src/main/resources/jenkins/install/pluginSetupWizard_lt.properties @@ -0,0 +1,54 @@ +installWizard_welcomePanel_title=\u012evadas +installWizard_welcomePanel_banner=Jenkins pritaikymas +installWizard_welcomePanel_message=Priedai papildo Jenkins\u0105 naujomis galimyb\u0117mis. +installWizard_welcomePanel_recommendedActionTitle=\u012ediegti si\u016blomus priedus +installWizard_welcomePanel_recommendedActionDetails=\u012ediegti priedus, kuriuos Jenkinso bendruomen\u0117 labiausiai naudoja. +installWizard_welcomePanel_customizeActionTitle=Parinkite priedus \u012fdiegimui +installWizard_welcomePanel_customizeActionDetails=Parinkite ir \u012fdiekite priedus, labiausiai patenkinan\u010dius j\u016bs\u0173 poreikius. +installWizard_jenkinsVersionTitle=Jenkins +installWizard_offline_title=Atsijung\u0119s +installWizard_offline_message=Pana\u0161u, kad \u0161is Jenkinsas yra atsijung\u0119s. \ +

\ +Daugiau informacijos apie tai, kaip diegti Jenkins\u0105 neprisijungus prie interneto, ie\u0161kokite \ +Neprijungto Jenkins diegimo dokumentacijoje.

\ +Galite nuspr\u0119sti t\u0119sti sukonfig\u016brav\u0119 \u0161liuz\u0105 arba praleisdami pried\u0173 diegim\u0105. \ +

+installWizard_error_header=\u012evyko klaida +installWizard_error_message=Diegiant \u012fvyko klaida: +installWizard_error_connection=Nepavyksta prisijungti prie Jenkinso +installWizard_installCustom_title=\u012evadas +installWizard_installCustom_selectAll=Viskas +installWizard_installCustom_selectNone=Nieko +installWizard_installCustom_selectRecommended=Rekomenduojami +installWizard_installCustom_selected=Pa\u017eym\u0117ti +installWizard_installCustom_dependenciesPrefix=Priklausomyb\u0117s +installWizard_installCustom_pluginListDesc=Pasteb\u0117tina, kad \u010dia nerodomas pilnas pried\u0173 s\u0105ra\u0161as. Papildomus priedus galite \u012fdiegti Pried\u0173 tvarkykl\u0117je, kai bus baigtas pradinis diegimas. Daugiau informacijos rasite vikyje. +installWizard_goBack=Atgal +installWizard_goInstall=\u012ediegti +installWizard_installing_title=\u012evadas +installWizard_installing_detailsLink=Detal\u0117s... +installWizard_installComplete_title=\u012evadas +installWizard_installComplete_banner=Jenkinsas paruo\u0161tas! +installWizard_pluginsInstalled_message=J\u016bs\u0173 pried\u0173 diegimas baigtas. +installWizard_installComplete_message=J\u016bs\u0173 Jenkinso nustatymas baigtas. +installWizard_installComplete_finishButtonLabel=Prad\u0117kite naudoti Jenkins\u0105 +installWizard_installComplete_restartRequiredMessage=Kai kuriems priedams reikia, kad Jenkinsas b\u016bt\u0173 i\u0161 naujo paleistas. +installWizard_installComplete_restartLabel=Paleisti i\u0161 naujo +installWizard_installIncomplete_title=T\u0119sti diegim\u0105 +installWizard_installIncomplete_banner=T\u0119sti diegim\u0105 +installWizard_installIncomplete_message=Jenkinsas buvo i\u0161 naujo paleistas diegimo metu ir pana\u0161u, kad kai kurie prieda ne\u012fsidieg\u0117. +installWizard_installIncomplete_resumeInstallationButtonLabel=T\u0119sti +installWizard_saveFirstUser=\u012era\u0161yti ir baigti +installWizard_skipFirstUser=T\u0119sti kaip administratoriumi +installWizard_firstUserSkippedMessage=
\ +J\u016bs praleidote administratoriaus naudotojo k\u016brim\u0105. Nor\u0117dami prisijungti, naudokite vard\u0105: \u201eadmin\u201c ir \ +administratoriaus slapta\u017eod\u012f, kur\u012f naudojote prisijungimui prie nustatymo vedlio.\ +
+installWizard_addFirstUser_title=\u012evadas +installWizard_configureProxy_label=Konfig\u016bruoti \u0161liuz\u0105 +installWizard_configureProxy_save=\u012era\u0161yti ir t\u0119sti +installWizard_skipPluginInstallations=Praleisti pried\u0173 diegim\u0105 +installWizard_installIncomplete_dependenciesLabel=Priklausomyb\u0117s +installWizard_installingConsole_dependencyIndicatorNote=** - privaloma priklausomyb\u0117 +installWizard_websiteLinkLabel=Svetain\u0117 +installWizard_retry=Kartoti From c81efc039b63cf833bbe3c0798052f4c82069c02 Mon Sep 17 00:00:00 2001 From: Tomas Date: Mon, 25 Apr 2016 23:30:16 +0300 Subject: [PATCH 14/31] Lithuanian translation update --- .../hudson/model/Messages_lt.properties | 480 +++++++++--------- 1 file changed, 240 insertions(+), 240 deletions(-) diff --git a/core/src/main/resources/hudson/model/Messages_lt.properties b/core/src/main/resources/hudson/model/Messages_lt.properties index 7ab30a731f..9dd82f067e 100644 --- a/core/src/main/resources/hudson/model/Messages_lt.properties +++ b/core/src/main/resources/hudson/model/Messages_lt.properties @@ -65,299 +65,299 @@ BallColor.Pending=Laukia BallColor.Success=S\u0117km\u0117 BallColor.Unstable=Nestabilus -Build.post_build_steps_failed=Post-build steps failed -CLI.clear-queue.shortDescription=Clears the build queue. -CLI.disable-job.shortDescription=Disables a job. -CLI.enable-job.shortDescription=Enables a job. -CLI.disconnect-node.shortDescription=Disconnects from a node. -CLI.connect-node.shortDescription=Reconnect to a node. -CLI.offline-node.shortDescription=Stop using a node for performing builds temporarily, until the next "online-node" command. -CLI.wait-node-online.shortDescription=Wait for a node to become online. -CLI.wait-node-offline.shortDescription=Wait for a node to become offline. +Build.post_build_steps_failed=\u017dingsniai po k\u016brimo nepavyko +CLI.clear-queue.shortDescription=I\u0161valo vykdymo eil\u0119. +CLI.disable-job.shortDescription=I\u0161jungia darb\u0105. +CLI.enable-job.shortDescription=\u012ejungia darb\u0105. +CLI.disconnect-node.shortDescription=Atsijungia nuo mazgo. +CLI.connect-node.shortDescription=I\u0161 naujo prisijungti prie mazgo. +CLI.offline-node.shortDescription=Laikinai nebenaudoti mazgo darb\u0173 vykdymui, kol bus \u012fvykdyta kita \u201emazgas \u012fjungtas\u201c komanda. +CLI.wait-node-online.shortDescription=Laukti, kol mazgas prisijungs. +CLI.wait-node-offline.shortDescription=Laukti, kol mazgas atsijungs. -Computer.Caption=Agent {0} -Computer.NoSuchSlaveExists=No such agent "{0}" exists. Did you mean "{1}"? -Computer.Permissions.Title=Agent -Computer.ExtendedReadPermission.Description=This permission allows users to read agent configuration. -Computer.ConfigurePermission.Description=This permission allows users to configure agents. -Computer.DeletePermission.Description=This permission allows users to delete existing agents. -Computer.CreatePermission.Description=This permission allows users to create agents. -Computer.ConnectPermission.Description=This permission allows users to connect agents or mark agents as online. -Computer.DisconnectPermission.Description=This permission allows users to disconnect agents or mark agents as temporarily offline. -Computer.BuildPermission.Description=This permission allows users to run jobs as them on agents. -Computer.BadChannel=Agent node offline or not a remote channel (such as master node). +Computer.Caption=Agentas {0} +Computer.NoSuchSlaveExists=N\u0117ra tokio agento \u201e{0}\u201c. Ar tur\u0117jote omeny \u201e{1}\u201c? +Computer.Permissions.Title=Agentas +Computer.ExtendedReadPermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams skaityti agento konfig\u016bracij\u0105. +Computer.ConfigurePermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams konfig\u016bruoti agentus. +Computer.DeletePermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams trinti esamus agentus. +Computer.CreatePermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams kurti agentus. +Computer.ConnectPermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams prijungti agentus arba pa\u017eym\u0117ti juos prisijungusiais. +Computer.DisconnectPermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams atjungti agentus arba pa\u017eym\u0117ti juos atsijungusiais. +Computer.BuildPermission.Description=\u0160i teis\u0117 leid\u017eia naudotojams paleisti darbus agentuose savo vardu. +Computer.BadChannel=Agento mazgas atsijuntg\u0119s arba n\u0117ra nutol\u0119s kanalas (pvz. valdantis mazgas). -ComputerSet.NoSuchSlave=No such agent: {0} -ComputerSet.SlaveAlreadyExists=Agent called \u2018{0}\u2019 already exists -ComputerSet.SpecifySlaveToCopy=Specify which agent to copy -ComputerSet.DisplayName=Nodes +ComputerSet.NoSuchSlave=N\u0117ra tokio agento: {0} +ComputerSet.SlaveAlreadyExists=Agentas pavadintas \u201e{0}\u201c jau yra +ComputerSet.SpecifySlaveToCopy=Nurodykite, kur\u012f agent\u0105 kopijuoti +ComputerSet.DisplayName=Mazgai -Descriptor.From=(from {0}) +Descriptor.From=(i\u0161 {0}) -Executor.NotAvailable=N/A +Executor.NotAvailable=N\u0117ra -FreeStyleProject.DisplayName=Freestyle project +FreeStyleProject.DisplayName=Laisvo stiliaus projektas FreeStyleProject.Description=\ Pagrindin\u0117 Jenkinso funkcija. Jenkinsas sukurs j\u016bs\u0173 projekt\u0105, kombinuojant bet koki\u0105 SCM su bet kokia k\u016brimo sistema, \ ir visa tai galima naudoti neb\u016btinai program\u0173 k\u016brimui. HealthReport.EmptyString= -Hudson.BadPortNumber=Bad port number {0} -Hudson.Computer.Caption=Master -Hudson.Computer.DisplayName=master -Hudson.ControlCodeNotAllowed=No control code is allowed: {0} +Hudson.BadPortNumber=Blogas prievado numeris {0} +Hudson.Computer.Caption=\u0160eimininkas +Hudson.Computer.DisplayName=\u0161eimininkas +Hudson.ControlCodeNotAllowed=Kontrolinis kodas neleid\u017eiamas: {0} Hudson.DisplayName=Jenkins -Hudson.JobAlreadyExists=A job already exists with the name \u2018{0}\u2019 -Hudson.NoJavaInPath=java is not in your PATH. Maybe you need to configure JDKs? -Hudson.NoName=No name is specified -Hudson.NoSuchDirectory=No such directory: {0} -Hudson.NodeBeingRemoved=Node is being removed -Hudson.NotAPlugin={0} is not a Jenkins plugin -Hudson.NotJDKDir={0} doesn\u2019t look like a JDK directory -Hudson.Permissions.Title=Overall -Hudson.USER_CONTENT_README=Files in this directory will be served under your http://server/jenkins/userContent/ -Hudson.UnsafeChar=\u2018{0}\u2019 is an unsafe character -Hudson.ViewAlreadyExists=A view already exists with the name "{0}" -Hudson.ViewName=All -Hudson.NotANumber=Not a number -Hudson.NotAPositiveNumber=Not a positive number -Hudson.NotANonNegativeNumber=Number may not be negative -Hudson.NotANegativeNumber=Not a negative number +Hudson.JobAlreadyExists=Jau yra darbas pavadintas \u201e{0}\u201c +Hudson.NoJavaInPath=java nerasta j\u016bs\u0173 PATH. Gal jums reikia sukonfig\u016bruoti JDKs? +Hudson.NoName=Nenurodytas pavadinimas +Hudson.NoSuchDirectory=N\u0117ra tokio aplanko: {0} +Hudson.NodeBeingRemoved=Mazgas yra \u0161alinamas +Hudson.NotAPlugin={0} n\u0117ra Jenkinso priedas +Hudson.NotJDKDir={0} nepana\u0161us \u012f JDK aplank\u0105 +Hudson.Permissions.Title=Bendras +Hudson.USER_CONTENT_README=\u0160io aplanko failas bus pasiekiami nuoroda http://server/jenkins/userContent/ +Hudson.UnsafeChar=\u201e{0}\u201c yra nesaugus simbolis +Hudson.ViewAlreadyExists=Jau yra rodinys pavadinimu \u201e{0}\u201c +Hudson.ViewName=Visi +Hudson.NotANumber=Ne skai\u010dius +Hudson.NotAPositiveNumber=Ne teigiamas skai\u010dius +Hudson.NotANonNegativeNumber=Skai\u010dius negali b\u016bti neigiamas +Hudson.NotANegativeNumber=Ne neigiamas skai\u010dius Hudson.NotUsesUTF8ToDecodeURL=\ - Your container doesn\u2019t use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, \ - this will cause problems. \ - See Containers and \ - Tomcat i18n for more details. + J\u016bs\u0173 konteineris nenaudoja UTF-8 nuorod\u0173 dekodavimui. Jei j\u016bs naudojate ne-ASCII simbolius darb\u0173 pavadinimams ir pan., \ + tai sukels problem\u0173. \ + Daugiau informacijos apie Konteinerius ir \ + Tomcat i18n. Hudson.AdministerPermission.Description=\ - This permission grants the ability to make system-wide configuration changes, \ - as well as perform highly sensitive operations that amounts to full local system access \ - (within the scope granted by the underlying OS.) + \u0160i teis\u0117 duoda galimyb\u0119 daryti sistemos lygio konfig\u016bracijos pakeitimus, \ + taip pat vykdyti labai jautrius veiksmus, \u012fskaitant piln\u0105 prieig\u0105 prie sistemos \ + (tiek, kiek leid\u017eia operacin\u0117 sistema.) Hudson.ReadPermission.Description=\ - The read permission is necessary for viewing almost all pages of Jenkins. \ - This permission is useful when you don\u2019t want unauthenticated users to see \ - Jenkins pages: revoke this permission from the anonymous user, then \ - add "authenticated" pseudo-user and grant the read access. + Skaitymo teis\u0117s yra b\u016btinos, norint \u017ei\u016br\u0117ti daugum\u0105 Jenkinso puslapi\u0173. \ + \u0160ios teis\u0117s naudingos, jei j\u016bs nenorite, kad neautentikuoti naudotojai matyt\u0173 \ + Jenkinso puslapius: atimkite \u0161ias teises i\u0161 anoniminio naudotojo, tada \ + prid\u0117kite pseaudo-naudotoj\u0105 \u201eauthenticated\u201c ir duokite jam skaitymo teises. Hudson.RunScriptsPermission.Description=\ - Required for running scripts inside the Jenkins process, for example via the Groovy console or Groovy CLI command. -Hudson.NodeDescription=the master Jenkins node + Reikia skript\u0173 paleidim\u0173 Jenkinso procese, pavyzd\u017eiui per Groovy konsol\u0119 arba Groovy CLI komand\u0105. +Hudson.NodeDescription=Pagrindinis Jenkinso mazgas -Item.Permissions.Title=Job -Item.CREATE.description=Create a new job. -Item.DELETE.description=Delete a job. -Item.CONFIGURE.description=Change the configuration of a job. -Item.READ.description=See a job. (You may deny this permission but allow Discover to force an anonymous user to log in to see the job.) +Item.Permissions.Title=Darbas +Item.CREATE.description=Kurti nauj\u0105 darb\u0105. +Item.DELETE.description=Trinti darb\u0105. +Item.CONFIGURE.description=Keisti darbo konfig\u016bracij\u0105. +Item.READ.description=Pa\u017ei\u016br\u0117ti darb\u0105. (Galite u\u017edrausti \u0161i\u0105 teis\u0119 bet leisti Tyrin\u0117jim\u0105, kad priverstum\u0117te anonimin\u012f naudotoj\u0105 prisijungti.) -Job.AllRecentBuildFailed=All recent builds failed. -Job.BuildStability=Build stability: {0} -Job.NOfMFailed={0} out of the last {1} builds failed. -Job.NoRecentBuildFailed=No recent builds failed. -Job.Pronoun=Project -Job.minutes=mins +Job.AllRecentBuildFailed=Visi paskutiniai vykdymai nepavyko. +Job.BuildStability=Vykdymo stabilumas: {0} +Job.NOfMFailed={0} i\u0161 paskutini\u0173 {1} vykdym\u0173 nepavyko. +Job.NoRecentBuildFailed=Pavyko visi paskutiniai vykdymai. +Job.Pronoun=Projektas +Job.minutes=minut\u0117s -Job.you_must_use_the_save_button_if_you_wish=You must use the Save button if you wish to rename a job. -Label.GroupOf=group of {0} -Label.InvalidLabel=invalid label -Label.ProvisionedFrom=Provisioned from {0} +Job.you_must_use_the_save_button_if_you_wish=J\u016bs privalote naudoti Save mygtuk\u0105, jei norite pervadinti darb\u0105. +Label.GroupOf=grup\u0117 i\u0161 {0} +Label.InvalidLabel=netinkama etiket\u0117 +Label.ProvisionedFrom=Apr\u016bpinta i\u0161 {0} ManageJenkinsAction.DisplayName=Tvarkyti Jenkins\u0105 MultiStageTimeSeries.EMPTY_STRING= -Queue.AllNodesOffline=All nodes of label \u2018{0}\u2019 are offline -Queue.LabelHasNoNodes=There are no nodes with the label \u2018{0}\u2019 -Queue.BlockedBy=Blocked by {0} -Queue.HudsonIsAboutToShutDown=Jenkins is about to shut down -Queue.InProgress=A build is already in progress -Queue.InQuietPeriod=In the quiet period. Expires in {0} -Queue.NodeOffline={0} is offline +Queue.AllNodesOffline=Visi etiket\u0117s \u201e{0}\u201c mazgai yra atsijung\u0119 +Queue.LabelHasNoNodes=N\u0117ra mazg\u0173 su etikete \u201e{0}\u201c +Queue.BlockedBy=Blokuotojas: {0} +Queue.HudsonIsAboutToShutDown=Jenkinsas ruo\u0161iasi i\u0161sijungti +Queue.InProgress=Jau vyksta vykdymas +Queue.InQuietPeriod=Tyliame periode. Baigsis po {0} +Queue.NodeOffline={0} yra atsijung\u0119s Queue.Unknown=??? -Queue.WaitingForNextAvailableExecutor=Waiting for next available executor -Queue.WaitingForNextAvailableExecutorOn=Waiting for next available executor on {0} -Queue.init=Restoring the build queue +Queue.WaitingForNextAvailableExecutor=Laukiama kito prieinamo vykdytojo +Queue.WaitingForNextAvailableExecutorOn=Laukiama kito prieinamo vykdytojo, esan\u010dio {0} +Queue.init=Atstatoma vykdymo eil\u0117 -ResultTrend.Aborted=Aborted -ResultTrend.Failure=Failure -ResultTrend.Fixed=Fixed -ResultTrend.NotBuilt=Not built -ResultTrend.NowUnstable=Now unstable -ResultTrend.StillFailing=Still failing -ResultTrend.StillUnstable=Still unstable -ResultTrend.Success=Success -ResultTrend.Unstable=Unstable -Run._is_waiting_for_a_checkpoint_on_={0} is waiting for a checkpoint on {1} -Run.BuildAborted=Build was aborted -Run.MarkedExplicitly=This record is explicitly marked to be kept. -Run.Permissions.Title=Run -Run.running_as_=Running as {0} -Run.UnableToDelete=Unable to delete {0}: {1} +ResultTrend.Aborted=Nutraukta +ResultTrend.Failure=Nes\u0117km\u0117 +ResultTrend.Fixed=Pataisyta +ResultTrend.NotBuilt=Nevykdyta +ResultTrend.NowUnstable=Dabar nestabilus +ResultTrend.StillFailing=Vis dar nepavyksta +ResultTrend.StillUnstable=Vis dar nestabilus +ResultTrend.Success=S\u0117km\u0117 +ResultTrend.Unstable=Nestabilus +Run._is_waiting_for_a_checkpoint_on_={0} laukia tikrinimom ta\u0161ko {1} +Run.BuildAborted=Vykdymas buvo nutrauktas +Run.MarkedExplicitly=\u0160is \u012fra\u0161as buvo konkre\u010diai pa\u017eym\u0117tas i\u0161saugojimui. +Run.Permissions.Title=Vykdyti +Run.running_as_=Vykdomas kaip {0} +Run.UnableToDelete=Nepavyksta i\u0161trinti {0}: {1} Run.DeletePermission.Description=\ - This permission allows users to manually delete specific builds from the build history. + \u0160i teis\u0117 leid\u017eia naudotojams rankiniu b\u016bdu i\u0161trinti konkre\u010dius vykdymus i\u0161 vykdym\u0173 istorijos. Run.UpdatePermission.Description=\ - This permission allows users to update description and other properties of a build, \ - for example to leave notes about the cause of a build failure. + \u0160i teis\u0117 leid\u017eia naudotojams atnaujinti vykdymo apra\u0161ym\u0105 ir kitas savybes, \ + pavyzd\u017eiui palikti pastabas apie nes\u0117km\u0117s prie\u017eastis. Run.ArtifactsPermission.Description=\ - This permission grants the ability to retrieve the artifacts produced by \ - builds. If you don\u2019t want an user to access the artifacts, you can do so by \ - revoking this permission. -Run.InProgressDuration={0} and counting -Run.NotStartedYet=Not started yet -Run.ArtifactsBrowserTitle=Artifacts of {0} {1} + \u0160i teis\u0117 duoda galimyb\u0119 i\u0161traukti rezultatus, sukurtus vykdymo metu. \ + Jei nenorite, kad naudotojas prieit\u0173 prie rezultat\u0173, galite t\u0105 padaryti \ + at\u0161aukdami \u0161i\u0105 teis\u0119. +Run.InProgressDuration={0} ir vis dar vyksta +Run.NotStartedYet=Dar neprad\u0117tas +Run.ArtifactsBrowserTitle=Rezultatai i\u0161 {0} {1} -Run.Summary.Stable=stable -Run.Summary.Unstable=unstable -Run.Summary.Aborted=aborted -Run.Summary.NotBuilt=not built -Run.Summary.BackToNormal=back to normal -Run.Summary.BrokenForALongTime=broken for a long time -Run.Summary.BrokenSinceThisBuild=broken since this build -Run.Summary.BrokenSince=broken since build {0} +Run.Summary.Stable=stabilus +Run.Summary.Unstable=nestabilus +Run.Summary.Aborted=nutrauktas +Run.Summary.NotBuilt=nevykdytas +Run.Summary.BackToNormal=v\u0117l normalu +Run.Summary.BrokenForALongTime=sul\u016b\u017e\u0119s jau ilg\u0105 laik\u0105 +Run.Summary.BrokenSinceThisBuild=sul\u016b\u017e\u0119s nuo \u0161io vykdymo +Run.Summary.BrokenSince=sul\u016b\u017e\u0119s nuo vykdymo {0} Run.Summary.Unknown=? -Slave.InvalidConfig.Executors=Invalid agent configuration for {0}. Invalid # of executors. -Slave.InvalidConfig.NoName=Invalid agent configuration. Name is empty -Slave.InvalidConfig.NoRemoteDir=Invalid agent configuration for {0}. No remote directory given -Slave.Launching={0} Launching agent -Slave.Network.Mounted.File.System.Warning=Are you sure you want to use network mounted file system for FS root? Note that this directory does not need to be visible to the master. -Slave.Remote.Director.Mandatory=Remote directory is mandatory -Slave.Terminated={0} agent was terminated -Slave.Remote.Relative.Path.Warning=Are you sure you want to use a relative path for the FS root? Note that relative \ - paths require that you can assure that the selected launcher provides a consistent current working directory. Using \ - an absolute path is highly recommended. -Slave.UnableToLaunch=Unable to launch the agent for {0}{1} -Slave.UnixSlave=This is a Unix agent -Slave.WindowsSlave=This is a Windows agent +Slave.InvalidConfig.Executors=Netinkama agento {0} konfig\u016bracija. Netinkamas vykdytoj\u0173 skai\u010dius. +Slave.InvalidConfig.NoName=Netinkama agento konfig\u016bracija. Tu\u0161\u010dias pavadinimas +Slave.InvalidConfig.NoRemoteDir=Netinkama agento {0} konfig\u016bracija. Nenurodytas nutol\u0119s aplankas +Slave.Launching={0} Paleid\u017eiamas agentas +Slave.Network.Mounted.File.System.Warning=Ar tikrai norite naudoti per tinkl\u0105 prijungt\u0105 fail\u0173 sistem\u0105 kaip FS \u0161ank\u012f? Pasteb\u0117tina, kad \u0161is aplankas neb\u016btinai turi b\u016bti matomas pagrindiniam mazgui. +Slave.Remote.Director.Mandatory=Nutol\u0119s aplankas yra privalomas +Slave.Terminated={0} agentas buvo nutrauktas +Slave.Remote.Relative.Path.Warning=Ar tikrai norite naudoti santykin\u012f keli\u0105, kaip FS \u0161akn\u012f? Pasteb\u0117tina, kad santykiniams \ + keliams reikia, kad j\u016bs u\u017etikrintum\u0117te, kad parinktas paleid\u0117jas u\u017etikrina pastov\u0173 einam\u0105j\u012f darbin\u012f aplank\u0105. Primygtinai \ + rekomenduojame naudoti absoliut\u0173 keli\u0105. +Slave.UnableToLaunch=Nepavyksta paleisti agento skirto {0}{1} +Slave.UnixSlave=Tai Unix agentas +Slave.WindowsSlave=Tai Windows agentas -TopLevelItemDescriptor.NotApplicableIn={0} items are not applicable within {1} +TopLevelItemDescriptor.NotApplicableIn={0} elementas nepritaikomi {1} r\u0117muose -UpdateCenter.DownloadButNotActivated=Downloaded Successfully. Will be activated during the next boot -UpdateCenter.n_a=N/A -View.Permissions.Title=View +UpdateCenter.DownloadButNotActivated=S\u0117kmingai atsi\u0173stas. Bus aktyvuotas per kit\u0105 paleidim\u0105 +UpdateCenter.n_a=N\u0117ra +View.Permissions.Title=Rodinys View.CreatePermission.Description=\ - This permission allows users to create new views. + \u0160i teis\u0117 leid\u017eia naudotojams kurti rodinius. View.DeletePermission.Description=\ - This permission allows users to delete existing views. + \u0160i teis\u0117 leid\u017eia naudotojams trinti esamus rodinius. View.ConfigurePermission.Description=\ - This permission allows users to change the configuration of views. + \u0160i teis\u0117 leid\u017eia naudotojams keisti rodini\u0173 konfig\u016bracij\u0105. View.ReadPermission.Description=\ - This permission allows users to see views (implied by generic read access). -View.MissingMode=No view type is specified + \u0160i teis\u0117 leid\u017eia naudotojams \u017ei\u016br\u0117ti rodinius (rei\u0161kia bendr\u0105 skaitymo prieig\u0105). +View.MissingMode=Nenurodytas rodinio tipas -UpdateCenter.Status.CheckingInternet=Checking internet connectivity -UpdateCenter.Status.CheckingJavaNet=Checking update center connectivity -UpdateCenter.Status.Success=Success +UpdateCenter.Status.CheckingInternet=Tikrinamas prisijungimas prie interneto +UpdateCenter.Status.CheckingJavaNet=Tikrinamas prisijungimas prie atnaujinim\u0173 centro +UpdateCenter.Status.Success=S\u0117km\u0117 UpdateCenter.Status.UnknownHostException=\ - Failed to resolve host name {0}. \ - Perhaps you need to configure HTTP proxy? + Nepavyko i\u0161spr\u0119sti stoties pavadinimo {0}. \ + Gal jums reikia sukonfig\u016bruoti HTTP \u0161liuz\u0105? UpdateCenter.Status.ConnectionFailed=\ - Failed to connect to {0}. \ - Perhaps you need to configure HTTP proxy? -UpdateCenter.init=Initialing update center -UpdateCenter.PluginCategory.android=Android Development -UpdateCenter.PluginCategory.builder=Build Tools -UpdateCenter.PluginCategory.buildwrapper=Build Wrappers -UpdateCenter.PluginCategory.cli=Command Line Interface -UpdateCenter.PluginCategory.cloud=Cloud Providers -UpdateCenter.PluginCategory.cluster=Cluster Management and Distributed Build -UpdateCenter.PluginCategory.database=Database -UpdateCenter.PluginCategory.deployment=Deployment + Nepavyko prisijungti prie {0}. \ + Gal jums reikia sukonfig\u016bruoti HTTP \u0161liuz\u0105? +UpdateCenter.init=Inicializuojamas atnaujinim\u0173 centras +UpdateCenter.PluginCategory.android=Android k\u016brimas +UpdateCenter.PluginCategory.builder=K\u016brimo \u012frankiai +UpdateCenter.PluginCategory.buildwrapper=K\u016brimo aplankas +UpdateCenter.PluginCategory.cli=Komandin\u0117s eilut\u0117s s\u0105saja +UpdateCenter.PluginCategory.cloud=Debes\u0173 tiek\u0117jai +UpdateCenter.PluginCategory.cluster=Klasterio valdymas ir paskirstytas vykdymas +UpdateCenter.PluginCategory.database=Duombaz\u0117 +UpdateCenter.PluginCategory.deployment=K\u016brimas UpdateCenter.PluginCategory.devops=DevOps -UpdateCenter.PluginCategory.dotnet=.NET Development -UpdateCenter.PluginCategory.external=External Site/Tool Integrations -UpdateCenter.PluginCategory.groovy-related=Groovy-related -UpdateCenter.PluginCategory.ios=iOS Development -UpdateCenter.PluginCategory.library=Library plugins (for use by other plugins) -UpdateCenter.PluginCategory.listview-column=List view columns +UpdateCenter.PluginCategory.dotnet=.NET k\u016brimas +UpdateCenter.PluginCategory.external=I\u0161orin\u0117 svetain\u0117/\u012franki\u0173 integracija +UpdateCenter.PluginCategory.groovy-related=Groovy-susij\u0119s +UpdateCenter.PluginCategory.ios=iOS k\u016brimas +UpdateCenter.PluginCategory.library=Bibliotek\u0173 priedai (naudojami kit\u0173 pried\u0173) +UpdateCenter.PluginCategory.listview-column=Rodinio s\u0105ra\u0161o stulpeliai UpdateCenter.PluginCategory.maven=Maven -UpdateCenter.PluginCategory.misc=Miscellaneous -UpdateCenter.PluginCategory.notifier=Build Notifiers -UpdateCenter.PluginCategory.page-decorator=Page Decorators -UpdateCenter.PluginCategory.parameter=Build Parameters -UpdateCenter.PluginCategory.post-build=Other Post-Build Actions -UpdateCenter.PluginCategory.python=Python Development -UpdateCenter.PluginCategory.report=Build Reports -UpdateCenter.PluginCategory.ruby=Ruby Development -UpdateCenter.PluginCategory.runcondition=RunConditions for use by the Run Condition plugin -UpdateCenter.PluginCategory.scala=Scala Development -UpdateCenter.PluginCategory.scm=Source Code Management -UpdateCenter.PluginCategory.scm-related=Source Code Management related -UpdateCenter.PluginCategory.security=Security -UpdateCenter.PluginCategory.slaves=Agent Launchers and Controllers -UpdateCenter.PluginCategory.test=Testing -UpdateCenter.PluginCategory.trigger=Build Triggers -UpdateCenter.PluginCategory.ui=User Interface -UpdateCenter.PluginCategory.upload=Artifact Uploaders -UpdateCenter.PluginCategory.user=Authentication and User Management -UpdateCenter.PluginCategory.view=Views -UpdateCenter.PluginCategory.must-be-labeled=Uncategorized -UpdateCenter.PluginCategory.unrecognized=Misc ({0}) +UpdateCenter.PluginCategory.misc=\u012evair\u016bs +UpdateCenter.PluginCategory.notifier=Vykdymo prane\u0161ikliai +UpdateCenter.PluginCategory.page-decorator=Puslapi\u0173 dekoratoriai +UpdateCenter.PluginCategory.parameter=Vykdymo parametrai +UpdateCenter.PluginCategory.post-build=Kiti veiksmo po vykdymo +UpdateCenter.PluginCategory.python=Python k\u016brimas +UpdateCenter.PluginCategory.report=Vykdymo ataskaitos +UpdateCenter.PluginCategory.ruby=Ruby k\u016brimas +UpdateCenter.PluginCategory.runcondition=Vykdymo s\u0105lygos, kurias naudoja Vykdymo s\u0105lyg\u0173 priedas +UpdateCenter.PluginCategory.scala=Scala k\u016brimas +UpdateCenter.PluginCategory.scm=I\u0161eities kodo valdymas +UpdateCenter.PluginCategory.scm-related=Susij\u0119 su i\u0161eities kodo valdymu +UpdateCenter.PluginCategory.security=Saugumas +UpdateCenter.PluginCategory.slaves=Agent\u0173 paleid\u0117jai ir valdytojai +UpdateCenter.PluginCategory.test=Testavimas +UpdateCenter.PluginCategory.trigger=Vykdymo trigeriai +UpdateCenter.PluginCategory.ui=Naudotojo s\u0105saja +UpdateCenter.PluginCategory.upload=Rezultat\u0173 \u012fk\u0117l\u0117jai +UpdateCenter.PluginCategory.user=Autentikacija ir naudotoj\u0173 valdymas +UpdateCenter.PluginCategory.view=Rodiniai +UpdateCenter.PluginCategory.must-be-labeled=Nekategorizuoti +UpdateCenter.PluginCategory.unrecognized=\u012evair\u016bs ({0}) -Permalink.LastBuild=Last build -Permalink.LastStableBuild=Last stable build -Permalink.LastUnstableBuild=Last unstable build -Permalink.LastUnsuccessfulBuild=Last unsuccessful build -Permalink.LastSuccessfulBuild=Last successful build -Permalink.LastFailedBuild=Last failed build -Permalink.LastCompletedBuild=Last completed build +Permalink.LastBuild=Paskutinis vykdymas +Permalink.LastStableBuild=Paskutinis stabilus vykdymas +Permalink.LastUnstableBuild=Paskutinis nestabilus vykdymas +Permalink.LastUnsuccessfulBuild=Paskutinis nes\u0117kmingas vykdymas +Permalink.LastSuccessfulBuild=Paskutinis s\u0117kmingas vykdymas +Permalink.LastFailedBuild=Paskutinis nepavyk\u0119s vykdymas +Permalink.LastCompletedBuild=Paskutinis baigtas vykdymas -ParameterAction.DisplayName=Parameters -ParametersDefinitionProperty.DisplayName=This project is parameterized -StringParameterDefinition.DisplayName=String Parameter -TextParameterDefinition.DisplayName=Multi-line String Parameter -FileParameterDefinition.DisplayName=File Parameter -BooleanParameterDefinition.DisplayName=Boolean Parameter -ChoiceParameterDefinition.DisplayName=Choice Parameter -ChoiceParameterDefinition.MissingChoices=Requires Choices. -RunParameterDefinition.DisplayName=Run Parameter -PasswordParameterDefinition.DisplayName=Password Parameter +ParameterAction.DisplayName=Parametrai +ParametersDefinitionProperty.DisplayName=\u0160is projektas yra parametrizuotas +StringParameterDefinition.DisplayName=Eilut\u0117s parametras +TextParameterDefinition.DisplayName=Keli\u0173 eilu\u010di\u0173 parametras +FileParameterDefinition.DisplayName=Failo parametras +BooleanParameterDefinition.DisplayName=Loginis parametras +ChoiceParameterDefinition.DisplayName=Pasirinkimo parametras +ChoiceParameterDefinition.MissingChoices=Reikalauja pasirinkim\u0173. +RunParameterDefinition.DisplayName=Paleidimo parametras +PasswordParameterDefinition.DisplayName=Slapta\u017eod\u017eio parametras -Node.BecauseNodeIsReserved={0} is reserved for jobs with matching label expression -Node.BecauseNodeIsNotAcceptingTasks={0} is not accepting tasks -Node.LabelMissing={0} doesn\u2019t have label {1} -Node.LackingBuildPermission={0} doesn\u2019t have a permission to run on {1} -Node.Mode.NORMAL=Use this node as much as possible -Node.Mode.EXCLUSIVE=Only build jobs with label expressions matching this node +Node.BecauseNodeIsReserved={0} yra rezervuotas darbams su atitinkan\u010dia etiket\u0117s i\u0161rai\u0161ka +Node.BecauseNodeIsNotAcceptingTasks={0} nepriima u\u017eduo\u010di\u0173 +Node.LabelMissing={0} neturi etiket\u0117s {1} +Node.LackingBuildPermission={0} neturi teis\u0117s b\u016bti paleistas {1} +Node.Mode.NORMAL=Naudoti \u0161\u012f mazg\u0105 kiek tik galima +Node.Mode.EXCLUSIVE=Vykdyti tik darbus su \u0161\u012f mazg\u0105 atitinkan\u010dia etikete -ListView.DisplayName=List View +ListView.DisplayName=S\u0105ra\u0161o rodinys -MyView.DisplayName=My View +MyView.DisplayName=Mano rodinys -LoadStatistics.Legends.DefinedExecutors=Defined executors -LoadStatistics.Legends.OnlineExecutors=Online executors -LoadStatistics.Legends.ConnectingExecutors=Connecting executors -LoadStatistics.Legends.TotalExecutors=Total executors -LoadStatistics.Legends.BusyExecutors=Busy executors -LoadStatistics.Legends.IdleExecutors=Idle executors -LoadStatistics.Legends.AvailableExecutors=Available executors -LoadStatistics.Legends.QueueLength=Queue length +LoadStatistics.Legends.DefinedExecutors=Nurodyti vykdytojai +LoadStatistics.Legends.OnlineExecutors=Prisijung\u0119 vykdytojai +LoadStatistics.Legends.ConnectingExecutors=Prisijungiantys vykdytojai +LoadStatistics.Legends.TotalExecutors=Viso vykdytoj\u0173 +LoadStatistics.Legends.BusyExecutors=U\u017eimt\u0173 vykdytoj\u0173 +LoadStatistics.Legends.IdleExecutors=Neu\u017eimt\u0173 vykdytoj\u0173 +LoadStatistics.Legends.AvailableExecutors=Prieinam\u0173 vykdytoj\u0173 +LoadStatistics.Legends.QueueLength=Eil\u0117s ilgis -Cause.LegacyCodeCause.ShortDescription=Legacy code started this job. No cause information is available -Cause.UpstreamCause.ShortDescription=Started by upstream project "{0}" build number {1} -Cause.UpstreamCause.CausedBy=originally caused by: -Cause.UserCause.ShortDescription=Started by user {0} -Cause.UserIdCause.ShortDescription=Started by user {0} -Cause.RemoteCause.ShortDescription=Started by remote host {0} -Cause.RemoteCause.ShortDescriptionWithNote=Started by remote host {0} with note: {1} +Cause.LegacyCodeCause.ShortDescription=\u0160\u012f darb\u0105 prad\u0117jo senas kodas. N\u0117ra prie\u017easties informacijos +Cause.UpstreamCause.ShortDescription=Prad\u0117ta i\u0161 auk\u0161tesnio projekto \u201e{0}\u201c vykdymo numerio {1} +Cause.UpstreamCause.CausedBy=originali prie\u017eastis: +Cause.UserCause.ShortDescription=Prad\u0117jo naudotojas {0} +Cause.UserIdCause.ShortDescription=Prad\u0117jo naudotojas {0} +Cause.RemoteCause.ShortDescription=Prad\u0117jo nutol\u0119s mazgas {0} +Cause.RemoteCause.ShortDescriptionWithNote=Prad\u0117jo nutol\u0119s mazgas {0} su pastaba: {1} -ProxyView.NoSuchViewExists=Global view {0} does not exist -ProxyView.DisplayName=Include a global view +ProxyView.NoSuchViewExists=Neegzistuoja globalus rodinys {0} +ProxyView.DisplayName=\u012etraukti global\u0173 rodin\u012f MyViewsProperty.DisplayName=Mano rodiniai MyViewsProperty.GlobalAction.DisplayName=Mano rodiniai -MyViewsProperty.ViewExistsCheck.NotExist=A view with name {0} does not exist -MyViewsProperty.ViewExistsCheck.AlreadyExists=A view with name {0} already exists +MyViewsProperty.ViewExistsCheck.NotExist=N\u0117ra rodinio pavadinimu {0} +MyViewsProperty.ViewExistsCheck.AlreadyExists=Rodinys pavadinimu {0} jau yra -CLI.restart.shortDescription=Restart Jenkins -CLI.safe-restart.shortDescription=Safely restart Jenkins -CLI.keep-build.shortDescription=Mark the build to keep the build forever. -CLI.quiet-down.shortDescription=Quiet down Jenkins, in preparation for a restart. Don\u2019t start any builds. -CLI.cancel-quiet-down.shortDescription=Cancel the effect of the "quiet-down" command. -CLI.reload-configuration.shortDescription=Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk. +CLI.restart.shortDescription=I\u0161 naujo paleisti Jenkins\u0105 +CLI.safe-restart.shortDescription=Saugiai i\u0161 naujo paleisti Jenkins\u0105 +CLI.keep-build.shortDescription=Pa\u017eym\u0117ti vykdym\u0105 am\u017einam saugojimui. +CLI.quiet-down.shortDescription=Tyliai nuleisti Jenkins\u0105, pasiruo\u0161iant paleidimui i\u0161 naujo. Neprad\u0117ti joki\u0173 vykdym\u0173. +CLI.cancel-quiet-down.shortDescription=Nutraukti \u201etylaus i\u0161jungimo\u201c komandos efekt\u0105. +CLI.reload-configuration.shortDescription=I\u0161mesti vius \u012f atmint\u012f \u012fkeltus duomenis ir i\u0161 naujo visk\u0105 \u012fkelti i\u0161 fail\u0173 sistemos. Naudinga, jei pakeit\u0117te konfig\u016bracijos failus tiesiai diske. -BuildAuthorizationToken.InvalidTokenProvided=Invalid token provided. +BuildAuthorizationToken.InvalidTokenProvided=Pateikta neteisinga \u017eyma. -Jenkins.CheckDisplayName.NameNotUniqueWarning=The display name, "{0}", is used as a name by a job and could cause confusing search results. -Jenkins.CheckDisplayName.DisplayNameNotUniqueWarning=The display name, "{0}", is already in use by another job and could cause confusion and delay. +Jenkins.CheckDisplayName.NameNotUniqueWarning=Rodomas pavadinimas \u201e{0}\u201c naudojamas kaip darbo pavadinimas ir gali b\u016bti keist\u0173 paie\u0161kos rezultat\u0173 prie\u017eastis. +Jenkins.CheckDisplayName.DisplayNameNotUniqueWarning=Rodomas pavadinimas \u201e{0}\u201c jau naudojamas kitame darbe tod\u0117l gali sukelti u\u017edelsim\u0105 ir sumai\u0161t\u012f. -Jenkins.NotAllowedName="{0}" is not allowed name -Jenkins.IsRestarting=Jenkins is restarting +Jenkins.NotAllowedName=\u201e{0}\u201c - neleid\u017eiamas pavadinimas +Jenkins.IsRestarting=Jenkinsas paleid\u017eiamas i\u0161 naujo -User.IllegalUsername="{0}" is prohibited as a username for security reasons. -User.IllegalFullname="{0}" is prohibited as a full name for security reasons. +User.IllegalUsername=\u201e{0}\u201c neleid\u017eiamas kaip naudotojo pavadinimas d\u0117l saugumo sumetim\u0173. +User.IllegalFullname=\u201e{0}\u201c neleid\u017eiamas kaip pilnas vardas d\u0117l saugumo sumetim\u0173. From b03d69c0435e009e3f2b98f83a7f008b53000b66 Mon Sep 17 00:00:00 2001 From: tfennelly Date: Tue, 26 Apr 2016 15:19:51 +0100 Subject: [PATCH 15/31] Switch on async-supported for Stapler and all Servlet Filters --- war/src/main/webapp/WEB-INF/web.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/war/src/main/webapp/WEB-INF/web.xml b/war/src/main/webapp/WEB-INF/web.xml index f9b401b608..27887e806c 100644 --- a/war/src/main/webapp/WEB-INF/web.xml +++ b/war/src/main/webapp/WEB-INF/web.xml @@ -42,6 +42,7 @@ THE SOFTWARE. diagnosticThreadName false + true @@ -57,26 +58,32 @@ THE SOFTWARE. diagnostic-name-filter org.kohsuke.stapler.DiagnosticThreadNameFilter + true encoding-filter hudson.util.CharacterEncodingFilter + true compression-filter org.kohsuke.stapler.compression.CompressionFilter + true authentication-filter hudson.security.HudsonFilter + true csrf-filter hudson.security.csrf.CrumbFilter + true plugins-filter hudson.util.PluginServletFilter + true + + + + + ${it.plugin.displayName} + + ${%Enabled} + + + diff --git a/core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row.jelly b/core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row.jelly new file mode 100644 index 0000000000..0dc1670b3b --- /dev/null +++ b/core/src/main/resources/hudson/model/UpdateCenter/NoOpJob/row.jelly @@ -0,0 +1,33 @@ + + + + + + ${it.plugin.displayName} + + ${%Already Installed} + + + From 114ae54bb966850a309173f896d4030cddb4da9b Mon Sep 17 00:00:00 2001 From: Vivek Pandey Date: Thu, 28 Apr 2016 23:46:12 -0700 Subject: [PATCH 22/31] Some more test fixes. --- .../src/test/java/hudson/model/QueueTest.java | 72 +++++++++---------- .../security/csrf/DefaultCrumbIssuerTest.java | 11 ++- 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/test/src/test/java/hudson/model/QueueTest.java b/test/src/test/java/hudson/model/QueueTest.java index 1ec5623fef..a667e980b6 100644 --- a/test/src/test/java/hudson/model/QueueTest.java +++ b/test/src/test/java/hudson/model/QueueTest.java @@ -68,6 +68,37 @@ import hudson.triggers.SCMTrigger.SCMTriggerCause; import hudson.triggers.TimerTrigger.TimerTriggerCause; import hudson.util.OneShotEvent; import hudson.util.XStream2; +import jenkins.model.Jenkins; +import jenkins.security.QueueItemAuthenticatorConfiguration; +import jenkins.triggers.ReverseBuildTrigger; +import org.acegisecurity.Authentication; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.acls.sid.PrincipalSid; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.io.FileUtils; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.servlet.ServletHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.Issue; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockQueueItemAuthenticator; +import org.jvnet.hudson.test.SequenceLock; +import org.jvnet.hudson.test.SleepBuilder; +import org.jvnet.hudson.test.TestBuilder; +import org.jvnet.hudson.test.TestExtension; +import org.jvnet.hudson.test.recipes.LocalData; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -84,41 +115,10 @@ import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import jenkins.model.Jenkins; -import jenkins.security.QueueItemAuthenticatorConfiguration; -import jenkins.triggers.ReverseBuildTrigger; -import org.acegisecurity.Authentication; -import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.acls.sid.PrincipalSid; -import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.io.FileUtils; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.*; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.ServerConnector; -import org.eclipse.jetty.servlet.ServletHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.Issue; -import org.jvnet.hudson.test.JenkinsRule; -import org.jvnet.hudson.test.MockQueueItemAuthenticator; -import org.jvnet.hudson.test.SequenceLock; -import org.jvnet.hudson.test.SleepBuilder; -import org.jvnet.hudson.test.TestBuilder; -import org.jvnet.hudson.test.TestExtension; -import org.jvnet.hudson.test.recipes.LocalData; - /** * @author Kohsuke Kawaguchi */ @@ -937,15 +937,15 @@ public class QueueTest { webClient.login("alice"); XmlPage p2 = webClient.goToXml("queue/api/xml"); //alice does not have permission on the project and will not see it in the queue. - assertEquals("", p2.getContent()); - + assertTrue(p2.getByXPath("/queue/node()").isEmpty()); webClient = r.createWebClient(); webClient.login("james"); XmlPage p3 = webClient.goToXml("queue/api/xml"); - //james has DISCOVER permission on the project and will only be able to see the task name. - assertEquals("project", - p3.getContent()); + //james has DISCOVER permission on the project and will only be able to see the task name. + List projects = p3.getByXPath("/queue/discoverableItem/task/name/text()"); + assertEquals(1, projects.size()); + assertEquals("project", projects.get(0).toString()); } //we force the project not to be executed so that it stays in the queue diff --git a/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java b/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java index 70583b6363..f3fddef1af 100644 --- a/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java +++ b/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java @@ -8,8 +8,7 @@ package hudson.security.csrf; import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.htmlunit.html.HtmlPage; -import java.net.HttpURLConnection; -import static org.junit.Assert.*; +import net.sf.json.JSONObject; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -18,6 +17,10 @@ import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.JenkinsRule.WebClient; import org.jvnet.hudson.test.recipes.PresetData; +import java.net.HttpURLConnection; + +import static org.junit.Assert.*; + /** * * @author dty @@ -126,7 +129,9 @@ public class DefaultCrumbIssuerTest { @Test public void apiJson() throws Exception { WebClient wc = r.createWebClient(); String json = wc.goTo("crumbIssuer/api/json", "application/json").getWebResponse().getContentAsString(); - assertTrue(json, json.matches("\\Q{\"crumb\":\"\\E[0-9a-f]+\\Q\",\"crumbRequestField\":\"" + r.jenkins.getCrumbIssuer().getCrumbRequestField() + "\"}\\E")); + JSONObject jsonObject = JSONObject.fromObject(json); + assertEquals(r.jenkins.getCrumbIssuer().getCrumbRequestField(),jsonObject.getString("crumbRequestField")); + assertTrue(jsonObject.getString("crumb").matches("[0-9a-f]+")); wc.assertFails("crumbIssuer/api/json?jsonp=hack", HttpURLConnection.HTTP_FORBIDDEN); } From 9a0250fbc015b616f0b1c9fc38429d35f69c79b7 Mon Sep 17 00:00:00 2001 From: Waldyr Date: Fri, 29 Apr 2016 09:41:37 -0300 Subject: [PATCH 23/31] Remove job translation and typos --- .../system-config/patternJobNamingStrategy_pt_BR.html | 8 ++++---- war/src/main/webapp/help/tools/help-label_pt_BR.html | 2 +- .../help/tools/tool-location-node-property_pt_BR.html | 2 +- .../webapp/help/view-config/filter-executors_pt_BR.html | 2 +- .../main/webapp/help/view-config/filter-queue_pt_BR.html | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html b/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html index 90a027094d..552ed99a39 100644 --- a/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html +++ b/war/src/main/webapp/help/system-config/patternJobNamingStrategy_pt_BR.html @@ -1,7 +1,7 @@
- Defina um padrão (expressão regular) para checar se o nome de uma tarefa é válido ou não. + Defina um padrão (expressão regular) para checar se o nome de um job é válido ou não.

- Forçando a checagem em tarefas que já existe, vai permitir que você reforce uma convenção - e.g. mesmo que os usuários não mudem o nome, - A tarefa vai ser validada com o padrão definido em cada submissão e atualização até que o nome confirme.
- Essa opção não afetará a execução de tarefas com nomes não complascentes. Isto apenas controla o processo de validação no momento de salvar as configurações de uma tarefa. + Forçando a checagem em jobs que já existem, vai permitir que você reforce uma convenção - e.g. mesmo que os usuários não mudem o nome, + O job será validado com o padrão definido em cada submissão e atualização até que o nome confirme.
+ Essa opção não afetará a execução de jobs com nomes não complascentes. Isto apenas controla o processo de validação no momento de salvar as configurações de um job.

diff --git a/war/src/main/webapp/help/tools/help-label_pt_BR.html b/war/src/main/webapp/help/tools/help-label_pt_BR.html index 6e8507248b..e122772916 100644 --- a/war/src/main/webapp/help/tools/help-label_pt_BR.html +++ b/war/src/main/webapp/help/tools/help-label_pt_BR.html @@ -1,5 +1,5 @@
Label opcional para restringir o uso deste método de instalação. Esta label pode ser uma expressão (por exemplo: "linux&&x64" or "windows&&x86"). - Somente nós que validaram esta label (ou expressão) irão ser considerados. + Somente nós que validaram esta label (ou expressão) serão considerados.
diff --git a/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html b/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html index f80966b3be..f16022961c 100644 --- a/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html +++ b/war/src/main/webapp/help/tools/tool-location-node-property_pt_BR.html @@ -1,4 +1,4 @@
Você pode especificar a localização de certas ferramentas, sobrescrevendo a configuração global. - (Você pode preferir o uso de instaladores automaticos de ferramentas como alternativa, removendo a necessidade de configurar cada nó separadamente) + (Você pode preferir o uso de instaladores automáticos de ferramentas como alternativa, removendo a necessidade de configurar cada nó separadamente)
diff --git a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html index 4a84aed06b..e6da393df1 100644 --- a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html +++ b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html @@ -22,5 +22,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
- Caso selecionado, apenas executores de build que podem executar tarefas nesta view aparecerão. + Caso selecionado, apenas executores de build que podem executar jobs nessa view aparecerão.
diff --git a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html b/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html index ffe7eb59d4..c2b91aca1b 100644 --- a/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html +++ b/war/src/main/webapp/help/view-config/filter-queue_pt_BR.html @@ -22,5 +22,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
- Caso selecionado, apenas tarefas nesta view aparecerão na fila. + Caso selecionado, apenas jobs nessa view aparecerão na fila.
From 5ebab10c8da161b9b686df82e88fc9a7357350c2 Mon Sep 17 00:00:00 2001 From: Waldyr Date: Fri, 29 Apr 2016 09:42:28 -0300 Subject: [PATCH 24/31] Use another name for license --- .../main/webapp/help/view-config/filter-executors_pt_BR.html | 2 +- war/src/main/webapp/help/view-config/filter-queue_pt_BR.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html index e6da393df1..76938b1fd8 100644 --- a/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html +++ b/war/src/main/webapp/help/view-config/filter-executors_pt_BR.html @@ -1,7 +1,7 @@ +

What's new in 2.1 (2016/05/01)

+

What's new in 2.0 (2016/04/20)

More detailed information about the new features in Jenkins 2.0 on the overview page. From 60a3fdf4d76b34e24f1fd11b353bd7140ed8bf58 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Sun, 1 May 2016 22:55:28 +0200 Subject: [PATCH 30/31] Add changelog for 2.1 --- changelog.html | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/changelog.html b/changelog.html index 4f829e7b80..dc3af86882 100644 --- a/changelog.html +++ b/changelog.html @@ -60,6 +60,78 @@ Upcoming changes

What's new in 2.1 (2016/05/01)

+
    +
  • + Enable disabled dependencies during plugin installations. + (issue 34494) +
  • + Force ordering between GPG and jarsigner to ensure correct GPG signature. + (pull 2285) +
  • + Secured Jenkins installations didn't properly safe the queue on shutdown. + (issue 34281) + +
  • + Add dependency resolution to manually uploaded plugins. + (issue 15057) +
  • + Show Jenkins version on setup wizard. + (issue 33535) +
  • + Update remoting to 2.57. + (issue 33999) +
  • + Allow retrying plugin downloads in setup wizard. + (issue 33244) +
  • + Add links to homepage of plugins and dependencies in setup wizard. + (issue 33936, + issue 33937) +
  • + Improved handling of the 'close' button during setup wizard. + (issue 34137) +
  • + Wrong spacing in flat mode of 'Create Item' screen. + (issue 31162) +
  • + Add timestamp to the jarsigner signature. + (pull 2284) +
  • + Improved French translation. + (pull 2267) +
  • + Improved Lithuanian translation. + (pull 2286) +
  • + Improved Brazilian Portuguese translation. + (pull 2273) + +
  • + Prevent errors when hiding management links. + (issue 33683) +
  • + Internal: Make logger field private. + (issue 34093) +
  • + Shorter timeout for plugin downloads to prevent setup wizard from hanging. + (issue 34174) +
  • + Check if job is buildable before showing 'Build with parameters' page. + (issue 34146) +
  • + Fixed race condition in slave offline cause. + (issue 34448) +
  • + Allow enabling disabled dependencies in the plugin manager to fix broken configurations. + (issue 32340) +
  • + Always display clicked scrollspy items as active in setup wizard. + (issue 33948) +
  • + Prevent multiple installations of the same dependency. + (issue 33950) +
+

What's new in 2.0 (2016/04/20)

From 1e87a8fddb8cde053315bf16b6aa6b03cfd9361b Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Mon, 2 May 2016 11:04:18 +0200 Subject: [PATCH 31/31] Reduce logging level of some warnings to INFO --- core/src/main/java/hudson/ExtensionFinder.java | 2 +- core/src/main/java/hudson/model/UpdateCenter.java | 2 +- core/src/main/java/hudson/model/UpdateSite.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/ExtensionFinder.java b/core/src/main/java/hudson/ExtensionFinder.java index d262f68001..6208f6cec8 100644 --- a/core/src/main/java/hudson/ExtensionFinder.java +++ b/core/src/main/java/hudson/ExtensionFinder.java @@ -431,7 +431,7 @@ public abstract class ExtensionFinder implements ExtensionPoint { if (verbose) { LOGGER.log(Level.WARNING, "Failed to instantiate " + key + "; skipping this component", x); } else { - LOGGER.log(Level.WARNING, "Failed to instantiate optional component {0}; skipping", key.getTypeLiteral()); + LOGGER.log(Level.INFO, "Failed to instantiate optional component {0}; skipping", key.getTypeLiteral()); LOGGER.log(Level.FINE, key.toString(), x); } } diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index 97d600c721..2bf183ae04 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1723,7 +1723,7 @@ public class UpdateCenter extends AbstractModelObject implements Saveable, OnMas if (wasInstalled()) { // Do this first so we can avoid duplicate downloads, too // check to see if the plugin is already installed at the same version and skip it - LOGGER.warning("Skipping duplicate install of: " + plugin.getDisplayName() + "@" + plugin.version); + LOGGER.info("Skipping duplicate install of: " + plugin.getDisplayName() + "@" + plugin.version); //throw new Skipped(); // TODO set skipped once we have a status indicator for it return; } diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java index 5b3a0adfa4..53b3226f4e 100644 --- a/core/src/main/java/hudson/model/UpdateSite.java +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -851,10 +851,10 @@ public class UpdateSite { for (Plugin dep : getNeededDependencies()) { UpdateCenter.InstallationJob job = uc.getJob(dep); if (job == null || job.status instanceof UpdateCenter.DownloadJob.Failure) { - LOGGER.log(Level.WARNING, "Adding dependent install of " + dep.name + " for plugin " + name); + LOGGER.log(Level.INFO, "Adding dependent install of " + dep.name + " for plugin " + name); dep.deploy(dynamicLoad); } else { - LOGGER.log(Level.WARNING, "Dependent install of " + dep.name + " for plugin " + name + " already added, skipping"); + LOGGER.log(Level.INFO, "Dependent install of " + dep.name + " for plugin " + name + " already added, skipping"); } } PluginWrapper pw = getInstalled();