Skip to content

Commit

Permalink
fix: Do not override user npm dependency version (#17661)
Browse files Browse the repository at this point in the history
* fix: Do not override user npm dependency version

Fixes #17654

* chore(deps): bump com.nimbusds:nimbus-jose-jwt from 9.34 to 9.35 (#17652)

Bumps [com.nimbusds:nimbus-jose-jwt](https://bitbucket.org/connect2id/nimbus-jose-jwt) from 9.34 to 9.35.
- [Changelog](https://bitbucket.org/connect2id/nimbus-jose-jwt/src/master/CHANGELOG.txt)
- [Commits](https://bitbucket.org/connect2id/nimbus-jose-jwt/branches/compare/9.35..9.34)

---
updated-dependencies:
- dependency-name: com.nimbusds:nimbus-jose-jwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: Update Node.js to latest 20.7.0 (#17646)

* fix: router-link postpone navigation (#17647)

Fixes issue with update timing
when postponing a router-link
as the navigation goes through
the vaadin-router.

Fixes #17528

* Feat/add tests for vaadin components (#17673)

* Adds a test for Icon in theme-editor

This is the first step to make the tests for all components in theme-editor.

This PR also adds setup/tearDown support to the theme-editor Testbench tests.

* Adds a test for Checkbox in theme-editor and make tests a bit more reliable

* In theme editor tests, check if the modified label appears after a change

a side effect of this change is that the checking of the values in the file
is deferred and then the dev server can write to the file before we try to
read it.

* Caching: Cache all com.vaadin.flow class instances (#17644)

* Caching: Cache all com.vaadin.flow class instances

* Caching: Cache all com.vaadin.flow class instances

* Ensure only classes from JARs are cached

* Fix cache test

* Use replace instead of replaceAll

* Cache com.vaadin.* and org.vaadin.* classes

* fix: synchronize cache maps in SpringLookupInitializer (#17668)

To avoid possibility to get ConcurrentModificationException.

* chore: changed synchronizedMap to ConcurrentHashMap (#17677)

For better non-blocking read-performance for lookups with SpringLookup.

* test: Ignore failed test for Theme Editor (#17679)

* chore: cache JS imported paths during chunk generation (#17672)

* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths

* chore(deps): bump com.vaadin:vaadin-parent from 2.2.0 to 2.2.1 (#17682)

Bumps [com.vaadin:vaadin-parent](https://github.com/vaadin/maven-integration) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/vaadin/maven-integration/releases)
- [Commits](vaadin/maven-integration@2.2.0...2.2.1)

---
updated-dependencies:
- dependency-name: com.vaadin:vaadin-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: forward/reroute when query parameters changed (#17659)

Forward and reroute should run even when targeting the same target
but with different query parameters.

Fixes #17639

* fix: upgrade spring-boot to 3.1.4 (#17680)

* Fixes the flaky theme editor tests (#17686)

* chore(deps): bump com.typesafe.akka:akka-actor_2.13 from 2.8.4 to 2.8.5 (#17683)

Bumps [com.typesafe.akka:akka-actor_2.13](https://github.com/akka/akka) from 2.8.4 to 2.8.5.
- [Release notes](https://github.com/akka/akka/releases)
- [Changelog](https://github.com/akka/akka/blob/main/akka-docs/release-train-issue-template.md)
- [Commits](akka/akka@v2.8.4...v2.8.5)

---
updated-dependencies:
- dependency-name: com.typesafe.akka:akka-actor_2.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump component.version from 24.1.9 to 24.1.10 (#17651)

Bumps `component.version` from 24.1.9 to 24.1.10.

Updates `com.vaadin:vaadin-lumo-theme` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-upload-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-upload-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-notification-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-notification-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-button-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-button-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-text-field-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-text-field-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-tabs-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-tabs-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-app-layout-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-app-layout-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-ordered-layout-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-ordered-layout-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-login-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-login-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-dialog-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-dialog-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-avatar-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-core` from 24.1.9 to 24.1.10

---
updated-dependencies:
- dependency-name: com.vaadin:vaadin-lumo-theme
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-upload-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-upload-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-notification-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-notification-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-button-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-button-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-text-field-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-text-field-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-tabs-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-tabs-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-app-layout-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-app-layout-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-ordered-layout-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-ordered-layout-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-login-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-login-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-dialog-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-dialog-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-avatar-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marco Collovati <marco@vaadin.com>

* Remove tests that test user versions end up in the vaadin section

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mikhail Shabarov <61410877+mshabarov@users.noreply.github.com>
Co-authored-by: caalador <mikael.grankvist@vaadin.com>
Co-authored-by: Bruno Rezende <brunovianarezende@gmail.com>
Co-authored-by: Teppo Kurki <teppo.kurki@vaadin.com>
Co-authored-by: Tomi Virtanen <tltv@vaadin.com>
Co-authored-by: Marco Collovati <marco@vaadin.com>
Co-authored-by: Zhe Sun <31067185+ZheSun88@users.noreply.github.com>
  • Loading branch information
9 people authored and vaadin-bot committed Sep 25, 2023
1 parent 84b1a04 commit 9cf3423
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 117 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,12 @@ protected static boolean pinPlatformDependency(JsonObject packageJson,
// would be but probably it should be pinned like any other version
}

if ((vaadinDepsVersion != null && packageJsonVersion != null)
&& !vaadinDepsVersion.equals(packageJsonVersion)) {
// The user has overridden the version, use that
return false;
}

if (platformPinnedVersion.equals(packageJsonVersion)
&& platformPinnedVersion.equals(vaadinDepsVersion)) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,8 @@ JsonObject getFilteredVersions(JsonObject versions, String versionOrigin) {
userManagedDependencies.getString(key), key,
versions.getString(key));
}
json.put(key, userManagedDependencies.getString(key));
} else {
json.put(key, versions.getString(key));
}
json.put(key, versions.getString(key));
}
return json;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,114 +159,6 @@ public void generateVersionsJson_userHasNoCustomVersions_platformIsMergedWithDev
object.getString("@vaadin/vaadin-overlay"));
}

@Test
public void generateVersionsJson_userVersionNewerThanPinned_intalledOverlayVersionIsUserVersion()
throws IOException {
File packageJson = new File(npmFolder, PACKAGE_JSON);
packageJson.createNewFile();

// Write package json file
final String customOverlayVersion = "3.3.0";
// @formatter:off
FileUtils.write(packageJson,
"{"
+ "\"vaadin\": {"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + PINNED_VERSION + "\""

+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.3.9\""
+ "},"
+ "},"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + customOverlayVersion + "\""
+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.4.0\""
+ "},"
+ "}",
StandardCharsets.UTF_8);
// @formatter:on

File versions = temporaryFolder.newFile();
// Platform defines a pinned version
// @formatter:off
FileUtils.write(versions, String.format(
"{"
+ "\"vaadin-overlay\": {"
+ "\"npmName\": \"@vaadin/vaadin-overlay\","
+ "\"jsVersion\": \"%s\""
+ "}"
+ "}", PINNED_VERSION), StandardCharsets.UTF_8);
// @formatter:on

JsonObject versionsJson = getGeneratedVersionsContent(versions,
packageJson);
Assert.assertEquals(
"Generated versions json should have keys for each dependency",
2, versionsJson.keys().length);
Assert.assertEquals("Overlay should be pinned to user version",
customOverlayVersion,
versionsJson.getString("@vaadin/vaadin-overlay"));
}

@Test
public void generateVersionsJson_userVersionOlderThanPinned_installedOverlayPinnedVersionIsUserVersion()
throws IOException {
File packageJson = new File(npmFolder, PACKAGE_JSON);
packageJson.createNewFile();

// Write package json file
final String customOverlayVersion = "3.1.0";

// @formatter:off
FileUtils.write(packageJson,
"{"
+ "\"vaadin\": {"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + PINNED_VERSION + "\""
+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.4.0\""
+ "},"
+ "},"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + customOverlayVersion + "\""
+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.3.9\""
+ "},"
+ "}",
StandardCharsets.UTF_8);
// @formatter:on

File versions = temporaryFolder.newFile();
// Platform defines a pinned version
// @formatter:off
FileUtils.write(versions,String.format(
"{"
+ "\"vaadin-overlay\": {"
+ "\"npmName\": \"@vaadin/vaadin-overlay\","
+ "\"jsVersion\": \"%s\""
+ "}"
+ "}", PINNED_VERSION), StandardCharsets.UTF_8);
// @formatter:on

JsonObject versionsJson = getGeneratedVersionsContent(versions,
packageJson);
Assert.assertEquals(
"Generated versions json should have keys for package.json dependencies (also dev)",
2, versionsJson.keys().length);
Assert.assertEquals("Overlay should be pinned to user version",
customOverlayVersion,
versionsJson.getString("@vaadin/vaadin-overlay"));
}

@Test
public void generateVersionsJson_userDefinedVersions_versionOnlyPinnedForNotAddedDependencies()
throws IOException {
Expand Down Expand Up @@ -338,15 +230,9 @@ public void generateVersionsJson_userDefinedVersions_versionOnlyPinnedForNotAdde
Assert.assertEquals("Login version is the same for user and platform.",
loginVersion,
generatedVersions.getString("@vaadin/vaadin-login"));
Assert.assertEquals("Menu Bar should be pinned to user version.",
menuVersion,
generatedVersions.getString("@vaadin/vaadin-menu-bar"));
Assert.assertEquals("Notification version should use platform",
versionsNotificationVersion,
generatedVersions.getString("@vaadin/vaadin-notification"));
Assert.assertEquals("Upload should be pinned to user version.",
uploadVersion,
generatedVersions.getString("@vaadin/vaadin-upload"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,34 @@ public void npmIsInUse_packageJsonHasNonNumericVersion_versionNotOverridden()
verifyVersionLockingWithNpmOverrides(true, false, true);
}

@Test
public void npmIsInUse_packageJsonVersionIsUpdated_vaadinSectionIsNotChanged()
throws IOException {
final JsonObject packageJson = getOrCreatePackageJson();
JsonObject dependencies = packageJson.getObject(DEPENDENCIES);
dependencies.put(VAADIN_ELEMENT_MIXIN, "1.2.3");
JsonObject vaadinSection = Json.createObject();
JsonObject vaadinDependencies = Json.createObject();
packageJson.put(VAADIN_DEP_KEY, vaadinSection);
vaadinSection.put(DEPENDENCIES, vaadinDependencies);
vaadinDependencies.put(VAADIN_ELEMENT_MIXIN,
PLATFORM_ELEMENT_MIXIN_VERSION);
FileUtils.writeStringToFile(new File(npmFolder, PACKAGE_JSON),
packageJson.toJson(), StandardCharsets.UTF_8);

createBasicVaadinVersionsJson();

final TaskUpdatePackages task = createTask(
createApplicationDependencies());
task.execute();

JsonObject newVaadinDeps = getOrCreatePackageJson()
.getObject(VAADIN_DEP_KEY).getObject(DEPENDENCIES);

Assert.assertEquals(PLATFORM_ELEMENT_MIXIN_VERSION,
newVaadinDeps.getString(VAADIN_ELEMENT_MIXIN));
}

// #11025
@Test
public void npmIsInUse_versionsJsonHasVaadinCoreVersionPinned_vaadinCoreVersionIgnored()
Expand Down

0 comments on commit 9cf3423

Please sign in to comment.