Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#1279 add full and minimal packages #1280

Merged
merged 15 commits into from
Nov 29, 2023
Merged

Conversation

robfrank
Copy link
Collaborator

@robfrank robfrank commented Oct 18, 2023

Related issues

#1279

When merged, the package project will produce three different zip/tar.gz and three different Docker images:

  • arcadedb-package-VERSIOM.zip: as before, the full fledge package with all the plugin inside
  • arcadedb-minimal-VERSION.zip
  • arcadedb-headless-VERSION.zip

What is removed in mininal and headless (as per related issue #1279) :

  • minimal:
            <excludes>
                <exclude>com.arcadedb:arcadedb-gremlin</exclude>
                <exclude>com.arcadedb:arcadedb-redisw</exclude>
                <exclude>com.arcadedb:arcadedb-mongodbw</exclude>
                <exclude>com.arcadedb:arcadedb-graphql</exclude>
            </excludes>
  • headless:
            <excludes>
                <exclude>com.arcadedb:arcadedb-gremlin</exclude>
                <exclude>com.arcadedb:arcadedb-redisw</exclude>
                <exclude>com.arcadedb:arcadedb-mongodbw</exclude>
                <exclude>com.arcadedb:arcadedb-graphql</exclude>
                <exclude>com.arcadedb:arcadedb-studio</exclude>
            </excludes>

Docker images will be:

  • arcadedata/arcadedb: as before, the full version (non rename)
  • arcadedata/arcadedb-minimal
  • arcadedata/arcadedb-headless

In this case, I kept the same name to don't force people that is using the Docker image in docker-compose, scripts, k8s to rename the reference to the image in a lot of files

Again, @lvca , WDYT?

Additionale notes

  • the "code" relative to Studio is in its own module
  • pre-commit is configure to format js and xml

@robfrank robfrank force-pushed the feature-1279/packaging branch 3 times, most recently from 3d9d2de to 9d1b1fb Compare November 1, 2023 15:33
@robfrank robfrank force-pushed the feature-1279/packaging branch 2 times, most recently from b3584e3 to 35677d9 Compare November 26, 2023 08:46
@robfrank robfrank requested a review from lvca November 26, 2023 14:29
@robfrank robfrank marked this pull request as ready for review November 26, 2023 14:29
@lvca
Copy link
Contributor

lvca commented Nov 26, 2023

Thanks @robfrank , this is huge! What is in and out the 2 new distribution?

@robfrank
Copy link
Collaborator Author

@lvca note that I moved all the js/html files in a dedicated module, that's why we have so many files in the PR

Copy link
Contributor

@lvca lvca left a comment

Choose a reason for hiding this comment

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

I love you separated studio!

@@ -9,7 +9,7 @@ scriptEngines:
classImports:
- java.lang.Math
methodImports:
- 'java.lang.Math#*'
Copy link
Contributor

Choose a reason for hiding this comment

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

Was this intentional or some IDE auto formatting?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

autoformatter

package/pom.xml Outdated
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>arcadedb-${project.version}</finalName>
<finalName>arcadedb-package-${project.version}</finalName>
Copy link
Contributor

Choose a reason for hiding this comment

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

What about using arcadedb-full as a name? So everybody understand it's the full version?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

was my first choice. But then I preferred to not create problems to people that is referring, maybe in their scripts, to arcadedb-package

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it's the opposite: now arcadedb-package is just a sub-project to pack up the distribution and everybody is using just "arcadedb-".

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

I never noticed we published the whole distribution on Maven, not only GitHub! But nobody is linking that package because it's a zip. not a jar. So we can even get rid of that and nobody would notice. The zip file is directly available on github.

The only doubt is about the name of the full distribution. In Docker we keep the current name (no suffix), that doesn't break compatibility 👍 But for the release we change it to "package" just to stick with the current zip deployed on maven, but nobody I think ever used it.

What if we remove the suffix from it? So we'd have (I usually upload the .tar.gz instead of .zip on github because it keeps the UNIX permissions on the .sh files):

  • arcadedb-VERSION.tar.gz: as before, the full-fledged package with all the plugins inside
  • arcadedb-minimal-VERSION.tar.gz
  • arcadedb-headless-VERSION.tar.gz

And same for docker:

  • arcadedata/arcadedb: as before, the full version (non rename)
  • arcadedata/arcadedb-minimal
  • arcadedata/arcadedb-headless

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok, this commit 4421646

does that

<include>*:jar:*</include>
</includes>
<excludes>
<exclude>com.arcadedb:arcadedb-gremlin</exclude>
Copy link
Contributor

Choose a reason for hiding this comment

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

If you exclude gremlin, does it automatically exclude al the linked jars?

Copy link
Collaborator Author

@robfrank robfrank Nov 26, 2023

Choose a reason for hiding this comment

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

yes because every pplugin (gremlin, redis, postgres) is packaged as a single fat jar (note the size):

22K Nov 26 21:17 arcadedb-console-23.11.1-SNAPSHOT.jar
2.0M Nov 26 21:17 arcadedb-engine-23.11.1-SNAPSHOT.jar
101K Nov 26 21:17 arcadedb-graphql-23.11.1-SNAPSHOT.jar
43M Nov 26 21:17 arcadedb-gremlin-23.11.1-SNAPSHOT.jar
166K Nov 26 21:17 arcadedb-integration-23.11.1-SNAPSHOT.jar
2.8M Nov 26 21:17 arcadedb-mongodbw-23.11.1-SNAPSHOT.jar
74K Nov 26 21:17 arcadedb-network-23.11.1-SNAPSHOT.jar
32K Nov 26 21:17 arcadedb-postgresw-23.11.1-SNAPSHOT.jar
16K Nov 26 21:17 arcadedb-redisw-23.11.1-SNAPSHOT.jar
267K Nov 26 21:17 arcadedb-server-23.11.1-SNAPSHOT.jar
.0M Nov 26 21:17 arcadedb-studio-23.11.1-SNAPSHOT.jar

Copy link
Contributor

Choose a reason for hiding this comment

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

Why studio is empty? console is only 22k? It seems like it's not including depending jars from the console. Or perhaps the fatjar is only with gremlin?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fatjar is oly for plugins: redis, gremlin, postgresql, mongodb.
errata corrige for tudio:

 7.0M Nov 26 21:17 arcadedb-studio-23.11.1-SNAPSHOT.jar

@robfrank robfrank requested a review from lvca November 28, 2023 08:21
@lvca
Copy link
Contributor

lvca commented Nov 28, 2023

Approved

@arcade-player arcade-player merged commit 0cee8ae into main Nov 29, 2023
6 of 11 checks passed
@lvca lvca added this to the 23.11.1 milestone Nov 29, 2023
@lvca lvca added the enhancement New feature or request label Nov 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants