You should have the following things installed:
- Git
- Java 25 - should be as unmodified as possible (Recommended: Eclipse Adoptium)
- Maven (Note that the Maven Wrapper is shipped with the repo)
- Install
IntelliJ- Recommended setup actions
- Disable not needed plugins
- Disable telemetry
- Configure the available memory
- Import the project
- You will get prompted to install the required plugins
- Ensure that everything is encoded in
UTF-8 - Ensure that the JDK/Java-Version is correct
- Recommended setup actions
... should automatically be enabled.
If you are changing a file and build the project, parts of the app get restarted.
Bigger changes may require a complete restart.
- Vaadin automatically reloads the UI on each restart.
You can control this behavior with thevaadin.devmode.liveReload.enabledproperty (default:true).
Before releasing:
- Consider doing a
test-deploymentbefore actually releasing. - Check the changelog
If the develop is ready for release, create a pull request to the master-Branch and merge the changes
When the release is finished do the following:
- Merge the auto-generated PR (with the incremented version number) back into the
develop - Ensure that Vaadin Directory syncs the update and maybe update the component / version there
There are 2 modes of release failure:
- The remote server was e.g. down and non of the artifacts got published
- There was a build failure during release and only parts of the artifacts got released
In case 1 we can re-release the existing version,
in case 2 we have to release a new version when we can't get the artifacts deleted (as is the case with Maven Central)
- Delete the release on GitHub
- Delete the release Git tag from the repo (locally and remote!)
- Delete the
master-Branch and re-create it from thedevelopbranch (or reset it to the state before the release-workflow commits have been done)- This requires temporarily removing the branch protection
- Once this was done a new release is triggered immediately!
- Merge the
masterbranch back intodevelop(or another temporary branch) - Make sure all master branch versions are prepared for a new release
e.g. if the broken release was1.0.0the version should now be at1.0.1-SNAPSHOT- theSNAPSHOTis important for the workflow! - Mark the broken release as broken e.g. inside the Changelog, GitHub Release page, etc.
You can use something like this:> [!WARNING] > This release is broken as my cat accidentally clicked the abort button during the process - Merge the changes back into the
masterbranch to trigger a new release