From 90dcb713b37b8861e4f96f837d48a91ce57774c0 Mon Sep 17 00:00:00 2001 From: Rene Pfeuffer Date: Thu, 16 Feb 2023 16:08:18 +0100 Subject: [PATCH 1/4] Remove unconditional force push This removes the unconditional force mode used while pushing changes made by the modify or the merge command in git repositories. The force mode led to the "deletion" of other changes on the same branch made between the creation of the working copy and the push to the core repository inside SCM-Manager. Committed-by: Konstantin Schaper --- gradle/changelog/force_push.yaml | 2 + .../repository/spi/AbstractGitCommand.java | 22 ++- .../scm/repository/spi/GitMirrorCommand.java | 2 +- .../spi/AbstractGitCommandTest.java | 132 ++++++++++++++++++ 4 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 gradle/changelog/force_push.yaml create mode 100644 scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/AbstractGitCommandTest.java diff --git a/gradle/changelog/force_push.yaml b/gradle/changelog/force_push.yaml new file mode 100644 index 0000000000..65ddcbf628 --- /dev/null +++ b/gradle/changelog/force_push.yaml @@ -0,0 +1,2 @@ +- type: fixed + description: Unconditional force push from editor or merges diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java index ccb1105e3c..8bd6df8162 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/AbstractGitCommand.java @@ -42,6 +42,8 @@ import org.eclipse.jgit.transport.RefSpec; import org.eclipse.jgit.transport.RemoteRefUpdate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import sonia.scm.ConcurrentModificationException; +import sonia.scm.ContextEntry; import sonia.scm.repository.GitWorkingCopyFactory; import sonia.scm.repository.InternalRepositoryException; import sonia.scm.repository.Person; @@ -62,6 +64,7 @@ import static java.util.Optional.of; import static java.util.stream.Collectors.toList; import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.NON_EXISTING; import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.OK; +import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_NONFASTFORWARD; import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.UP_TO_DATE; import static sonia.scm.ContextEntry.ContextBuilder.entity; import static sonia.scm.NotFoundException.notFound; @@ -247,13 +250,21 @@ class AbstractGitCommand { } void push(String... refSpecs) { + push(false, refSpecs); + } + + void forcePush(String... refSpecs) { + push(true, refSpecs); + } + + private void push(boolean force, String... refSpecs) { logger.trace("Pushing mirror result to repository {} with refspec '{}'", repository, refSpecs); try { Iterable pushResults = clone .push() .setRefSpecs(stream(refSpecs).map(RefSpec::new).collect(toList())) - .setForce(true) + .setForce(force) .call(); Iterator pushResultIterator = pushResults.iterator(); if (!pushResultIterator.hasNext()) { @@ -269,8 +280,13 @@ class AbstractGitCommand { .filter(remoteRefUpdate -> !ACCEPTED_UPDATE_STATUS.contains(remoteRefUpdate.getStatus())) .findAny() .ifPresent(remoteRefUpdate -> { - logger.info("message for unexpected push result {} for remote {}: {}", remoteRefUpdate.getStatus(), remoteRefUpdate.getRemoteName(), pushResult.getMessages()); - throw forMessage(repository, pushResult.getMessages()); + if (remoteRefUpdate.getStatus() == REJECTED_NONFASTFORWARD) { + logger.debug("non fast-forward change detected; probably the remote {} has been changed during the modification: {}", remoteRefUpdate.getRemoteName(), pushResult.getMessages()); + throw new ConcurrentModificationException(ContextEntry.ContextBuilder.entity("Branch", remoteRefUpdate.getRemoteName()).in(repository).build()); + } else { + logger.info("message for unexpected push result {} for remote {}: {}", remoteRefUpdate.getStatus(), remoteRefUpdate.getRemoteName(), pushResult.getMessages()); + throw forMessage(repository, pushResult.getMessages()); + } }); } catch (GitAPIException e) { throw new InternalRepositoryException(repository, "could not push changes into central repository", e); diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMirrorCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMirrorCommand.java index 7aff4af9a1..a6c9cd34a8 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMirrorCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMirrorCommand.java @@ -219,7 +219,7 @@ public class GitMirrorCommand extends AbstractGitCommand implements MirrorComman defaultBranchSelector.newDefaultBranch().ifPresent(this::setNewDefaultBranch); String[] pushRefSpecs = generatePushRefSpecs().toArray(new String[0]); - push(pushRefSpecs); + forcePush(pushRefSpecs); ResultType finalResult = lfsUpdateResult.hasFailures()? FAILED: result; return new MirrorCommandResult(finalResult, mirrorLog, stopwatch.stop().elapsed(), lfsUpdateResult); } diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/AbstractGitCommandTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/AbstractGitCommandTest.java new file mode 100644 index 0000000000..0b7e8e059e --- /dev/null +++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/AbstractGitCommandTest.java @@ -0,0 +1,132 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository.spi; + +import io.micrometer.core.instrument.simple.SimpleMeterRegistry; +import org.awaitility.Awaitility; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.GitAPIException; +import org.eclipse.jgit.lib.Repository; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import sonia.scm.ConcurrentModificationException; +import sonia.scm.repository.work.NoneCachingWorkingCopyPool; +import sonia.scm.repository.work.WorkdirProvider; + +import java.io.IOException; +import java.util.concurrent.CountDownLatch; + +public class AbstractGitCommandTest extends AbstractGitCommandTestBase { + + @Rule + public BindTransportProtocolRule transportProtocolRule = new BindTransportProtocolRule(); + @Rule + public TemporaryFolder cloneFolder = new TemporaryFolder(); + + private final CountDownLatch createdWorkingCopyLatch = new CountDownLatch(1); + private final CountDownLatch createdConflictingCommitLatch = new CountDownLatch(1); + private boolean gotConflict = false; + + @Override + protected String getZippedRepositoryResource() { + return "sonia/scm/repository/spi/scm-git-spi-test.zip"; + } + + @Test + public void shouldNotOverwriteConcurrentCommit() throws GitAPIException, IOException, InterruptedException { + GitContext context = createContext(); + SimpleGitCommand command = new SimpleGitCommand(context); + Repository repo = context.open(); + + new Thread(() -> { + try { + command.doSomething(); + } catch (Exception e) { + throw new RuntimeException(e); + } + }).start(); + + Git clone = Git + .cloneRepository() + .setURI(repo.getDirectory().toString()) + .setDirectory(cloneFolder.newFolder()) + .call(); + + // somehow we have to wait here, though we don't know why + Thread.sleep(1000); + + createdWorkingCopyLatch.await(); + createCommit(clone); + clone.push().call(); + createdConflictingCommitLatch.countDown(); + + Awaitility.await().until(() -> gotConflict); + } + + private class SimpleGitCommand extends AbstractGitCommand { + + SimpleGitCommand(GitContext context) { + super(context); + } + + void doSomething() { + inClone( + git -> new Worker(context, repository, git), + new SimpleGitWorkingCopyFactory(new NoneCachingWorkingCopyPool(new WorkdirProvider(repositoryLocationResolver)), new SimpleMeterRegistry()), + "master" + ); + } + } + + private synchronized void createCommit(Git git) throws GitAPIException { + git.commit().setMessage("Add new commit").call(); + } + + private class Worker extends AbstractGitCommand.GitCloneWorker { + + private final Git git; + + private Worker(GitContext context, sonia.scm.repository.Repository repository, Git git) { + super(git, context, repository); + this.git = git; + } + + @Override + Void run() { + try { + createCommit(git); + createdWorkingCopyLatch.countDown(); + createdConflictingCommitLatch.await(); + push("master"); + } catch (ConcurrentModificationException e) { + gotConflict = true; + } catch (Exception e) { + throw new RuntimeException(e); + } + return null; + } + } +} From 70274c0b1a51035578f1c3a5e2af098bbb243527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Mon, 23 Jan 2023 17:12:48 +0100 Subject: [PATCH 2/4] Update changelog to 0.2.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 6a58d91e88..caaf48cbb3 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ plugins { id 'java-platform' id 'maven-publish' id "org.sonarqube" version "3.0" - id "org.scm-manager.changelog" version "0.1.7" + id "org.scm-manager.changelog" version "0.2.0" id 'org.scm-manager.license' version "0.7.1" } From 5fee8e1d626b056c08de26476ae48ac4e9dd0ce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Thu, 16 Feb 2023 16:16:58 +0100 Subject: [PATCH 3/4] Adjust changelog for release 2.41.1 --- CHANGELOG.md | 5 +++++ gradle/changelog/force_push.yaml | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) delete mode 100644 gradle/changelog/force_push.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 280fba3af1..9a3174b2da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.41.1] - 2023-02-16 +### Fixed +- Unconditional force push from editor or merges + ## [2.41.0] - 2023-01-18 ### Added - Add abstract configuration adapter to simply creating new global configurations @@ -1204,3 +1208,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [2.40.0]: https://scm-manager.org/download/2.40.0 [2.40.1]: https://scm-manager.org/download/2.40.1 [2.41.0]: https://scm-manager.org/download/2.41.0 +[2.41.1]: https://scm-manager.org/download/2.41.1 diff --git a/gradle/changelog/force_push.yaml b/gradle/changelog/force_push.yaml deleted file mode 100644 index 65ddcbf628..0000000000 --- a/gradle/changelog/force_push.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- type: fixed - description: Unconditional force push from editor or merges From e23cb64a6858e11923b652e9f51c2b70c1041f89 Mon Sep 17 00:00:00 2001 From: CES Marvin Date: Thu, 16 Feb 2023 17:41:51 +0000 Subject: [PATCH 4/4] Release version 2.41.1 --- gradle.properties | 2 +- scm-plugins/scm-git-plugin/package.json | 4 ++-- scm-plugins/scm-hg-plugin/package.json | 4 ++-- scm-plugins/scm-legacy-plugin/package.json | 4 ++-- scm-plugins/scm-svn-plugin/package.json | 4 ++-- scm-ui/e2e-tests/package.json | 2 +- scm-ui/ui-api/package.json | 4 ++-- scm-ui/ui-buttons/package.json | 6 ++--- scm-ui/ui-components/package.json | 16 ++++++------- scm-ui/ui-extensions/package.json | 4 ++-- scm-ui/ui-forms/package.json | 10 ++++----- scm-ui/ui-legacy/package.json | 8 +++---- scm-ui/ui-modules/package.json | 2 +- scm-ui/ui-overlays/package.json | 4 ++-- scm-ui/ui-plugins/package.json | 16 ++++++------- scm-ui/ui-polyfill/package.json | 2 +- scm-ui/ui-scripts/package.json | 2 +- scm-ui/ui-shortcuts/package.json | 2 +- scm-ui/ui-styles/package.json | 2 +- scm-ui/ui-syntaxhighlighting/package.json | 4 ++-- scm-ui/ui-tests/package.json | 2 +- scm-ui/ui-text/package.json | 2 +- scm-ui/ui-types/package.json | 2 +- scm-ui/ui-webapp/package.json | 26 +++++++++++----------- 24 files changed, 67 insertions(+), 67 deletions(-) diff --git a/gradle.properties b/gradle.properties index 954081e164..7558b9e39d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,5 +22,5 @@ # SOFTWARE. # group = sonia.scm -version = 2.41.0 +version = 2.41.1 org.gradle.jvmargs=-Xmx1024M diff --git a/scm-plugins/scm-git-plugin/package.json b/scm-plugins/scm-git-plugin/package.json index dee832138b..95436e92c3 100644 --- a/scm-plugins/scm-git-plugin/package.json +++ b/scm-plugins/scm-git-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-git-plugin", "private": true, - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -11,7 +11,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "2.41.0" + "@scm-manager/ui-plugins": "2.41.1" }, "devDependencies": { "@scm-manager/babel-preset": "^2.13.1", diff --git a/scm-plugins/scm-hg-plugin/package.json b/scm-plugins/scm-hg-plugin/package.json index ae08935263..f89a2d3d25 100644 --- a/scm-plugins/scm-hg-plugin/package.json +++ b/scm-plugins/scm-hg-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-hg-plugin", "private": true, - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -10,7 +10,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "2.41.0" + "@scm-manager/ui-plugins": "2.41.1" }, "devDependencies": { "@scm-manager/babel-preset": "^2.13.1", diff --git a/scm-plugins/scm-legacy-plugin/package.json b/scm-plugins/scm-legacy-plugin/package.json index 813356d488..4edbd52bd8 100644 --- a/scm-plugins/scm-legacy-plugin/package.json +++ b/scm-plugins/scm-legacy-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-legacy-plugin", "private": true, - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "main": "./src/main/js/index.tsx", "scripts": { @@ -10,7 +10,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "2.41.0" + "@scm-manager/ui-plugins": "2.41.1" }, "devDependencies": { "@scm-manager/babel-preset": "^2.13.1", diff --git a/scm-plugins/scm-svn-plugin/package.json b/scm-plugins/scm-svn-plugin/package.json index 33595c994d..da11382b6e 100644 --- a/scm-plugins/scm-svn-plugin/package.json +++ b/scm-plugins/scm-svn-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-svn-plugin", "private": true, - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -10,7 +10,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "2.41.0" + "@scm-manager/ui-plugins": "2.41.1" }, "devDependencies": { "@scm-manager/babel-preset": "^2.13.1", diff --git a/scm-ui/e2e-tests/package.json b/scm-ui/e2e-tests/package.json index 85236161c5..32b836beb2 100644 --- a/scm-ui/e2e-tests/package.json +++ b/scm-ui/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/e2e-tests", - "version": "2.41.0", + "version": "2.41.1", "description": "End to end Tests for SCM-Manager", "main": "index.js", "author": "Eduard Heimbuch ", diff --git a/scm-ui/ui-api/package.json b/scm-ui/ui-api/package.json index 94b785935d..41239f0ad4 100644 --- a/scm-ui/ui-api/package.json +++ b/scm-ui/ui-api/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-api", - "version": "2.41.0", + "version": "2.41.1", "description": "React hook api for the SCM-Manager backend", "main": "build/index.js", "module": "build/index.mjs", @@ -29,7 +29,7 @@ "tsup": "^5.12.6" }, "dependencies": { - "@scm-manager/ui-types": "2.41.0", + "@scm-manager/ui-types": "2.41.1", "fetch-mock-jest": "^1.5.1", "gitdiff-parser": "^0.2.2", "query-string": "6.14.1", diff --git a/scm-ui/ui-buttons/package.json b/scm-ui/ui-buttons/package.json index 7f68048e05..edba1adf2a 100644 --- a/scm-ui/ui-buttons/package.json +++ b/scm-ui/ui-buttons/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-buttons", - "version": "2.41.0", + "version": "2.41.1", "private": false, "main": "build/index.js", "module": "build/index.mjs", @@ -24,11 +24,11 @@ "react-dom": "^17.0.1", "react-router-dom": "^5.3.1", "classnames": "^2.2.6", - "@scm-manager/ui-components": "2.41.0" + "@scm-manager/ui-components": "2.41.1" }, "devDependencies": { "@scm-manager/prettier-config": "^2.11.1", - "@scm-manager/ui-api": "2.41.0", + "@scm-manager/ui-api": "2.41.1", "@scm-manager/eslint-config": "^2.17.0", "@babel/core": "^7.17.8", "@scm-manager/tsconfig": "^2.12.0", diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index dcb161ff8b..8105a2a36d 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-components", - "version": "2.41.0", + "version": "2.41.1", "description": "UI Components for SCM-Manager and its plugins", "main": "src/index.ts", "files": [ @@ -20,15 +20,15 @@ "update-storyshots": "jest --testPathPattern=\"storyshots.test.ts\" --collectCoverage=false -u" }, "devDependencies": { - "@scm-manager/ui-syntaxhighlighting": "2.41.0", - "@scm-manager/ui-shortcuts": "2.41.0", - "@scm-manager/ui-text": "2.41.0", + "@scm-manager/ui-syntaxhighlighting": "2.41.1", + "@scm-manager/ui-shortcuts": "2.41.1", + "@scm-manager/ui-text": "2.41.1", "@scm-manager/babel-preset": "^2.13.1", "@scm-manager/eslint-config": "^2.17.0", "@scm-manager/jest-preset": "^2.13.0", "@scm-manager/prettier-config": "^2.10.1", "@scm-manager/tsconfig": "^2.13.0", - "@scm-manager/ui-tests": "2.41.0", + "@scm-manager/ui-tests": "2.41.1", "@storybook/addon-actions": "^6.4.20", "@storybook/addon-essentials": "^6.4.20", "@storybook/addon-interactions": "^6.4.20", @@ -67,9 +67,9 @@ }, "dependencies": { "@headlessui/react": "^1.4.3", - "@scm-manager/ui-api": "2.41.0", - "@scm-manager/ui-extensions": "2.41.0", - "@scm-manager/ui-types": "2.41.0", + "@scm-manager/ui-api": "2.41.1", + "@scm-manager/ui-extensions": "2.41.1", + "@scm-manager/ui-types": "2.41.1", "classnames": "^2.2.6", "date-fns": "^2.4.1", "deepmerge": "^4.2.2", diff --git a/scm-ui/ui-extensions/package.json b/scm-ui/ui-extensions/package.json index f317180b0e..df227ac558 100644 --- a/scm-ui/ui-extensions/package.json +++ b/scm-ui/ui-extensions/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-extensions", - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "private": false, "author": "Sebastian Sdorra ", @@ -17,7 +17,7 @@ "test": "jest" }, "dependencies": { - "@scm-manager/ui-types": "2.41.0", + "@scm-manager/ui-types": "2.41.1", "react": "^17.0.1" }, "devDependencies": { diff --git a/scm-ui/ui-forms/package.json b/scm-ui/ui-forms/package.json index 455e3fc9e9..16fbb980a2 100644 --- a/scm-ui/ui-forms/package.json +++ b/scm-ui/ui-forms/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/ui-forms", "private": false, - "version": "2.41.0", + "version": "2.41.1", "main": "build/index.js", "types": "build/index.d.ts", "module": "build/index.mjs", @@ -16,7 +16,7 @@ "@scm-manager/eslint-config": "^2.16.0", "@scm-manager/prettier-config": "^2.10.1", "@scm-manager/tsconfig": "^2.13.0", - "@scm-manager/ui-styles": "2.41.0", + "@scm-manager/ui-styles": "2.41.1", "@storybook/addon-actions": "^6.5.10", "@storybook/addon-essentials": "^6.5.10", "@storybook/addon-interactions": "^6.5.10", @@ -32,7 +32,7 @@ "tsup": "^6.2.3" }, "peerDependencies": { - "@scm-manager/ui-components": "2.41.0", + "@scm-manager/ui-components": "2.41.1", "classnames": "^2.3.1", "react": "17", "react-hook-form": "7", @@ -40,8 +40,8 @@ "react-query": "3" }, "dependencies": { - "@scm-manager/ui-buttons": "2.41.0", - "@scm-manager/ui-api": "2.41.0" + "@scm-manager/ui-buttons": "2.41.1", + "@scm-manager/ui-api": "2.41.1" }, "prettier": "@scm-manager/prettier-config", "eslintConfig": { diff --git a/scm-ui/ui-legacy/package.json b/scm-ui/ui-legacy/package.json index 630ee2d152..2b174d204e 100644 --- a/scm-ui/ui-legacy/package.json +++ b/scm-ui/ui-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-legacy", - "version": "2.41.0", + "version": "2.41.1", "private": true, "main": "build/index.js", "module": "build/index.mjs", @@ -12,9 +12,9 @@ "test": "jest --passWithNoTests" }, "dependencies": { - "@scm-manager/ui-api": "2.41.0", - "@scm-manager/ui-extensions": "2.41.0", - "@scm-manager/ui-types": "2.41.0", + "@scm-manager/ui-api": "2.41.1", + "@scm-manager/ui-extensions": "2.41.1", + "@scm-manager/ui-types": "2.41.1", "react": "^17.0.1", "react-redux": "^5.0.7", "redux": "^4.0.0" diff --git a/scm-ui/ui-modules/package.json b/scm-ui/ui-modules/package.json index 73f3deeaa5..1bfe048e6c 100644 --- a/scm-ui/ui-modules/package.json +++ b/scm-ui/ui-modules/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-modules", - "version": "2.41.0", + "version": "2.41.1", "private": true, "main": "build/index.js", "module": "build/index.mjs", diff --git a/scm-ui/ui-overlays/package.json b/scm-ui/ui-overlays/package.json index be50801b6c..a10aa53fc8 100644 --- a/scm-ui/ui-overlays/package.json +++ b/scm-ui/ui-overlays/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/ui-overlays", "private": false, - "version": "2.41.0", + "version": "2.41.1", "main": "build/index.js", "types": "build/index.d.ts", "module": "build/index.mjs", @@ -16,7 +16,7 @@ "@scm-manager/eslint-config": "^2.16.0", "@scm-manager/prettier-config": "^2.10.1", "@scm-manager/tsconfig": "^2.13.0", - "@scm-manager/ui-styles": "2.41.0", + "@scm-manager/ui-styles": "2.41.1", "@storybook/addon-actions": "^6.5.10", "@storybook/addon-essentials": "^6.5.10", "@storybook/addon-interactions": "^6.5.10", diff --git a/scm-ui/ui-plugins/package.json b/scm-ui/ui-plugins/package.json index 202cd19aa8..e8afed5156 100644 --- a/scm-ui/ui-plugins/package.json +++ b/scm-ui/ui-plugins/package.json @@ -1,15 +1,15 @@ { "name": "@scm-manager/ui-plugins", - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "bin": { "ui-plugins": "./bin/ui-plugins.js" }, "dependencies": { - "@scm-manager/ui-components": "2.41.0", - "@scm-manager/ui-extensions": "2.41.0", - "@scm-manager/ui-forms": "2.41.0", - "@scm-manager/ui-buttons": "2.41.0", + "@scm-manager/ui-components": "2.41.1", + "@scm-manager/ui-extensions": "2.41.1", + "@scm-manager/ui-forms": "2.41.1", + "@scm-manager/ui-buttons": "2.41.1", "classnames": "^2.2.6", "query-string": "6.14.1", "react": "^17.0.1", @@ -28,9 +28,9 @@ "@scm-manager/plugin-scripts": "^1.2.2", "@scm-manager/prettier-config": "^2.10.1", "@scm-manager/tsconfig": "^2.13.0", - "@scm-manager/ui-scripts": "2.41.0", - "@scm-manager/ui-tests": "2.41.0", - "@scm-manager/ui-types": "2.41.0", + "@scm-manager/ui-scripts": "2.41.1", + "@scm-manager/ui-tests": "2.41.1", + "@scm-manager/ui-types": "2.41.1", "@types/classnames": "^2.2.9", "@types/enzyme": "^3.10.3", "@types/fetch-mock": "^7.3.1", diff --git a/scm-ui/ui-polyfill/package.json b/scm-ui/ui-polyfill/package.json index 1d37b4649c..c66736643c 100644 --- a/scm-ui/ui-polyfill/package.json +++ b/scm-ui/ui-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-polyfill", - "version": "2.41.0", + "version": "2.41.1", "description": "Polyfills for SCM-Manager UI", "main": "src/index.js", "author": "Sebastian Sdorra ", diff --git a/scm-ui/ui-scripts/package.json b/scm-ui/ui-scripts/package.json index 51759c8b11..b6e18cdb0c 100644 --- a/scm-ui/ui-scripts/package.json +++ b/scm-ui/ui-scripts/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-scripts", - "version": "2.41.0", + "version": "2.41.1", "description": "Build scripts for SCM-Manager", "main": "src/index.js", "author": "Sebastian Sdorra ", diff --git a/scm-ui/ui-shortcuts/package.json b/scm-ui/ui-shortcuts/package.json index b3d1e06f79..8a6f4cbf90 100644 --- a/scm-ui/ui-shortcuts/package.json +++ b/scm-ui/ui-shortcuts/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-shortcuts", - "version": "2.41.0", + "version": "2.41.1", "license": "MIT", "private": true, "main": "build/index.js", diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json index 8afa7f5ff3..bfcf5ef93b 100644 --- a/scm-ui/ui-styles/package.json +++ b/scm-ui/ui-styles/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-styles", - "version": "2.41.0", + "version": "2.41.1", "description": "Styles for SCM-Manager", "main": "src/scm.scss", "license": "MIT", diff --git a/scm-ui/ui-syntaxhighlighting/package.json b/scm-ui/ui-syntaxhighlighting/package.json index 71d756a698..d702c11792 100644 --- a/scm-ui/ui-syntaxhighlighting/package.json +++ b/scm-ui/ui-syntaxhighlighting/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-syntaxhighlighting", - "version": "2.41.0", + "version": "2.41.1", "private": true, "main": "src/index.ts", "scripts": { @@ -13,7 +13,7 @@ "depcheck": "depcheck" }, "dependencies": { - "@scm-manager/ui-text": "2.41.0", + "@scm-manager/ui-text": "2.41.1", "nanoid": "^3.3.2", "react-diff-view": "^2.4.10", "refractor": "^4.5.0" diff --git a/scm-ui/ui-tests/package.json b/scm-ui/ui-tests/package.json index 936d01ab77..1b54e368bf 100644 --- a/scm-ui/ui-tests/package.json +++ b/scm-ui/ui-tests/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-tests", - "version": "2.41.0", + "version": "2.41.1", "description": "UI-Tests helpers", "author": "Sebastian Sdorra ", "license": "MIT", diff --git a/scm-ui/ui-text/package.json b/scm-ui/ui-text/package.json index ae15df98ac..e50c1f1df8 100644 --- a/scm-ui/ui-text/package.json +++ b/scm-ui/ui-text/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-text", - "version": "2.41.0", + "version": "2.41.1", "private": true, "main": "build/index.js", "module": "build/index.mjs", diff --git a/scm-ui/ui-types/package.json b/scm-ui/ui-types/package.json index 9e94cc8711..a2a2870b0e 100644 --- a/scm-ui/ui-types/package.json +++ b/scm-ui/ui-types/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-types", - "version": "2.41.0", + "version": "2.41.1", "description": "Typescript types for SCM-Manager related Objects", "main": "src/index.ts", "files": [ diff --git a/scm-ui/ui-webapp/package.json b/scm-ui/ui-webapp/package.json index 0e52d734a5..15831d529a 100644 --- a/scm-ui/ui-webapp/package.json +++ b/scm-ui/ui-webapp/package.json @@ -1,20 +1,20 @@ { "name": "@scm-manager/ui-webapp", - "version": "2.41.0", + "version": "2.41.1", "private": true, "dependencies": { "@headlessui/react": "^1.4.3", - "@scm-manager/ui-api": "2.41.0", - "@scm-manager/ui-components": "2.41.0", - "@scm-manager/ui-extensions": "2.41.0", - "@scm-manager/ui-modules": "2.41.0", - "@scm-manager/ui-syntaxhighlighting": "2.41.0", - "@scm-manager/ui-text": "2.41.0", - "@scm-manager/ui-shortcuts": "2.41.0", - "@scm-manager/ui-legacy": "2.41.0", - "@scm-manager/ui-forms": "2.41.0", - "@scm-manager/ui-buttons": "2.41.0", - "@scm-manager/ui-overlays": "2.41.0", + "@scm-manager/ui-api": "2.41.1", + "@scm-manager/ui-components": "2.41.1", + "@scm-manager/ui-extensions": "2.41.1", + "@scm-manager/ui-modules": "2.41.1", + "@scm-manager/ui-syntaxhighlighting": "2.41.1", + "@scm-manager/ui-text": "2.41.1", + "@scm-manager/ui-shortcuts": "2.41.1", + "@scm-manager/ui-legacy": "2.41.1", + "@scm-manager/ui-forms": "2.41.1", + "@scm-manager/ui-buttons": "2.41.1", + "@scm-manager/ui-overlays": "2.41.1", "classnames": "^2.2.5", "history": "^4.10.1", "i18next": "21", @@ -42,7 +42,7 @@ "devDependencies": { "@scm-manager/eslint-config": "^2.17.0", "@scm-manager/jest-preset": "^2.13.0", - "@scm-manager/ui-tests": "2.41.0", + "@scm-manager/ui-tests": "2.41.1", "@testing-library/react": "^12.1.5", "@types/classnames": "^2.2.9", "@types/enzyme": "^3.10.3",