Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 1 addition & 19 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,23 +1,5 @@
node_modules
target
.vscode
.settings
.project
.classpath
webpack.generated.js
package-lock.json
package.json
webpack.config.js
/error-screenshots
drivers
tsconfig.json
.idea
types.d.ts
/frontend/generated
/frontend/index.html
vite.generated.ts
vite.config.ts
/src/main/dev-bundle
/src/main/bundles
/src/main/frontend/generated
/src/main/frontend/index.html
.classpath
23 changes: 23 additions & 0 deletions base/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
node_modules
target
.vscode
.settings
.project
.classpath
webpack.generated.js
package-lock.json
package.json
Comment on lines +8 to +9
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot Apr 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Do not ignore dependency manifests needed for reproducible frontend builds.

At Line 8 and Line 9, ignoring package-lock.json and package.json can hide dependency changes and make installs non-reproducible across environments.

Suggested change
-package-lock.json
-package.json
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
package-lock.json
package.json
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@base/.gitignore` around lines 8 - 9, Remove package.json and
package-lock.json from the ignore list so dependency manifests are tracked;
update .gitignore by deleting the lines containing "package.json" and
"package-lock.json" (or comment them out) to ensure dependency changes and
reproducible installs are committed.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since it's a library, the installs do not require building a bundle. package-lock-json and package.json are only produced when running the demo locally, and it was decided that we will not version them (see https://github.com/FlowingCode/AddonStarter24/blob/master/.gitignore)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@javier-godoy, understood — thank you for the clarification. This is indeed consistent with the established convention for FlowingCode addon libraries; library maintainers should not include dependency lock files, and since package.json/package-lock.json are only generated transiently when running the demo locally, excluding them from version control is the right call. I'll withdraw my concern.

(´• ω •`) 🐇✨


✏️ Learnings added
Learnt from: javier-godoy
Repo: FlowingCode/CommonsDemo PR: 155
File: base/.gitignore:8-9
Timestamp: 2026-04-07T11:28:19.677Z
Learning: In FlowingCode addon library projects (e.g., CommonsDemo, AddonStarter24), `package.json` and `package-lock.json` are intentionally listed in `.gitignore` because they are only generated transiently when running the demo locally. These files are not versioned as a deliberate project-wide convention. Do not flag their omission from version control as an issue.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

webpack.config.js
/error-screenshots
drivers
tsconfig.json
.idea
types.d.ts
/frontend/generated
/frontend/index.html
vite.generated.ts
vite.config.ts
/src/main/dev-bundle
/src/main/bundles
/src/main/frontend/generated
/src/main/frontend/index.html
330 changes: 330 additions & 0 deletions base/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,330 @@
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.flowingcode.vaadin.addons.demo</groupId>
<artifactId>commons-demo</artifactId>
<version>5.3.0-SNAPSHOT</version>

<name>Commons Demo</name>
<description>Common classes for add-ons demo</description>
<url>https://www.flowingcode.com/en/open-source/</url>

<developers>
<developer>
<id>flowingcode</id>
<organization>Flowing Code</organization>
<organizationUrl>https://www.flowingcode.com</organizationUrl>
</developer>
</developers>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<vaadin.version>24.3.13</vaadin.version>
<jetty.version>11.0.26</jetty.version>
</properties>

<organization>
<name>Flowing Code</name>
<url>https://www.flowingcode.com</url>
</organization>
<inceptionYear>2020</inceptionYear>
<licenses>
<license>
<name>Apache 2</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>

<scm>
<url>https://github.com/FlowingCode/CommonsDemo</url>
<connection>scm:git:git://github.com/FlowingCode/CommonsDemo.git</connection>
<developerConnection>scm:git:ssh://git@github.com:/FlowingCode/CommonsDemo.git</developerConnection>
<tag>master</tag>
</scm>

<repositories>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Comment thread
coderabbitai[bot] marked this conversation as resolved.

<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-core</artifactId>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.flowingcode.vaadin.addons</groupId>
<artifactId>enhanced-tabs-addon</artifactId>
<version>1.2.0</version>
</dependency>

<dependency>
<groupId>com.flowingcode.vaadin</groupId>
<artifactId>json-migration-helper</artifactId>
<version>0.9.2</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-testbench</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.webjars.bowergithub.polymer</groupId>
<artifactId>polymer</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>6.3.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>1.14</version>
<configuration>
<licenseName>apache_v2</licenseName>
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
<excludes>
<exclude>**/AppShellConfiguratorImpl.class</exclude>
<exclude>**/main/resources/META-INF/resources/frontend/prism.js</exclude>
<exclude>**/main/resources/META-INF/resources/frontend/prism.css</exclude>
<exclude>**/test/resources/**</exclude>
<exclude>**/main/dev-bundle/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<scanIntervalSeconds>3</scanIntervalSeconds>
<!-- Use test scope because the UI/demo classes are in
the test package. -->
<useTestScope>true</useTestScope>
<supportedPackagings>
<supportedPackaging>jar</supportedPackaging>
</supportedPackagings>
<webApp>
<resourceBases>
<resourceBase>src/main/resources/META-INF/resources</resourceBase>
<resourceBase>src/test/resources/META-INF/resources</resourceBase>
</resourceBases>
</webApp>
</configuration>
</plugin>
</plugins>
</pluginManagement>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<!-- Generated file that shouldn't be included in add-ons -->
<excludes>
<exclude>META-INF/VAADIN/config/flow-build-info.json</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-frontend</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<quiet>true</quiet>
<doclint>none</doclint>
<failOnWarnings>true</failOnWarnings>
<links>
<link>https://javadoc.io/doc/com.vaadin/vaadin-platform-javadoc/${vaadin.version}</link>
</links>
</configuration>
</plugin>
</plugins>
</build>

<profiles>
<profile>
<id>gpg</id>
<activation>
<property>
<name>env.MAVEN_GPG_PASSPHRASE</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>

<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
</profile>

<profile>
<id>v25</id>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<vaadin.version>25.0.0</vaadin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-dev</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</profile>

</profiles>

</project>
Loading
Loading