Skip to content

Commit

Permalink
Use montarre for the application distribution.
Browse files Browse the repository at this point in the history
  • Loading branch information
io7m committed Oct 19, 2024
1 parent e498225 commit 712e214
Show file tree
Hide file tree
Showing 16 changed files with 263 additions and 139 deletions.
39 changes: 39 additions & 0 deletions README.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

## laurel

The `laurel` package attempts to provide tools to assist
with _image captioning_ within the context of [machine
learning](https://en.wikipedia.org/wiki/Machine_learning).

In particular, the application is geared towards the management of smaller
datasets (in the range of thousands of images) for use in techniques such as
[LORA](https://en.wikipedia.org/wiki/Fine-tuning_(deep_learning)#Low-rank_adaptation)
training.

![Screenshot](./src/site/resources/screenshot.png?raw=true)

## Features

* A user interface for managing images and captions for those images.
* A caption categorization system for assisting with keeping captions consistent across large datasets.
* The ability to import captions and images into a dataset from a directory hierarchy.
* The ability to export captions and images into a directory for use in training scripts.
* A persistent undo/redo system that can store every change ever made to a
dataset, including the ability to effectively revert to an earlier version
at any time.
* A carefully-engineered Java API for manipulating datasets; the command-line
tools and user interface are thin shells over this API.
* Datasets are backed by [SQLite](https://www.sqlite.org) for reliable,
transactional updates, and a file format that is designed to endure for
decades to come.
* Command line tools for automating operations such as importing, exporting,
and interrogating metadata.
* Comprehensive documentation.
* [OSGi](https://www.osgi.org/)-ready.
* [JPMS](https://en.wikipedia.org/wiki/Java_Platform_Module_System)-ready.
* ISC license.

## Usage

See the [documentation](https://www.io7m.com/software/laurel).

190 changes: 165 additions & 25 deletions com.io7m.laurel.distribution/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -132,38 +132,178 @@
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<groupId>com.io7m.montarre</groupId>
<artifactId>com.io7m.montarre.maven_plugin</artifactId>
<executions>
<execution>
<id>distribution</id>
<id>make-distribution</id>
<goals>
<goal>single</goal>
<goal>package</goal>
</goals>
<phase>package</phase>
<configuration>
<descriptors>
<descriptor>src/main/assembly/distribution.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<validationWarningsAreErrors>true</validationWarningsAreErrors>

<plugin>
<groupId>io.github.zlika</groupId>
<artifactId>reproducible-build-maven-plugin</artifactId>
<executions>
<execution>
<id>strip-distribution</id>
<phase>package</phase>
<goals>
<goal>strip-jar</goal>
</goals>
<configuration>
<includes>
<include>${project.artifactId}-${project.version}-distribution.zip</include>
</includes>
<applicationKind>CONSOLE</applicationKind>

<categories>
<category>Development</category>
<category>Building</category>
</categories>

<copyright>Copyright © 2024 Mark Raynsford &lt;[email protected]> https://www.io7m.com</copyright>

<humanName>Laurel</humanName>
<packageName>com.io7m.laurel</packageName>
<shortName>laurel</shortName>

<description>Image caption management</description>

<version>
<number>${project.version}</number>
<date>2024-10-19</date>
</version>

<vendor>
<id>com.io7m</id>
<name>io7m</name>
</vendor>

<longDescriptions>
<longDescription>${project.basedir}/src/main/meta/description-en.xml</longDescription>
</longDescriptions>

<mainModule>com.io7m.laurel.gui.main/com.io7m.laurel.gui.main.LGUIMain</mainModule>

<requiredJDKVersion>${io7m.java.targetJavaVersion}</requiredJDKVersion>

<flatpak>
<runtimes>
<runtime>
<name>org.freedesktop.Sdk</name>
<version>24.08</version>
<role>SDK</role>
</runtime>
<runtime>
<name>org.freedesktop.Platform</name>
<version>24.08</version>
<role>PLATFORM</role>
</runtime>
</runtimes>
<permissions>
<permission>--filesystem=home:rw</permission>
</permissions>
</flatpak>

<libraries>
<excludes>
<exclude>com\.io7m\.montarre\.distribution-.*</exclude>
<exclude>javafx-base-.*-linux\.jar</exclude>
<exclude>javafx-base-.*-linux-aarch64\.jar</exclude>
<exclude>javafx-base-.*-win\.jar</exclude>
<exclude>javafx-controls-.*-linux\.jar</exclude>
<exclude>javafx-controls-.*-linux-aarch64\.jar</exclude>
<exclude>javafx-controls-.*-win\.jar</exclude>
<exclude>javafx-fxml-.*-linux\.jar</exclude>
<exclude>javafx-fxml-.*-linux-aarch64\.jar</exclude>
<exclude>javafx-fxml-.*-win\.jar</exclude>
<exclude>javafx-graphics-.*-linux\.jar</exclude>
<exclude>javafx-graphics-.*-linux-aarch64\.jar</exclude>
<exclude>javafx-graphics-.*-win\.jar</exclude>
</excludes>
</libraries>

<platformLibraries>
<platformLibrary>
<architecture>x86_64</architecture>
<operatingSystem>linux</operatingSystem>
<includes>
<include>javafx-base-.*-linux\.jar</include>
<include>javafx-controls-.*-linux\.jar</include>
<include>javafx-fxml-.*-linux\.jar</include>
<include>javafx-graphics-.*-linux\.jar</include>
</includes>
</platformLibrary>
<platformLibrary>
<architecture>aarch_64</architecture>
<operatingSystem>linux</operatingSystem>
<includes>
<include>javafx-base-.*-linux-aarch64\.jar</include>
<include>javafx-controls-.*-linux-aarch64\.jar</include>
<include>javafx-fxml-.*-linux-aarch64\.jar</include>
<include>javafx-graphics-.*-linux-aarch64\.jar</include>
</includes>
</platformLibrary>
<platformLibrary>
<architecture>x86_64</architecture>
<operatingSystem>windows</operatingSystem>
<includes>
<include>javafx-base-.*-win\.jar</include>
<include>javafx-controls-.*-win\.jar</include>
<include>javafx-fxml-.*-win\.jar</include>
<include>javafx-graphics-.*-win\.jar</include>
</includes>
</platformLibrary>
</platformLibraries>

<resources>
<resource>
<role>BOM</role>
<file>${project.build.directory}/bom.xml</file>
<entryName>bom.xml</entryName>
</resource>
<resource>
<role>ICON_16</role>
<file>${project.basedir}/src/main/meta/icon16.png</file>
<entryName>icon16.png</entryName>
</resource>
<resource>
<role>ICON_24</role>
<file>${project.basedir}/src/main/meta/icon24.png</file>
<entryName>icon24.png</entryName>
</resource>
<resource>
<role>ICON_32</role>
<file>${project.basedir}/src/main/meta/icon32.png</file>
<entryName>icon32.png</entryName>
</resource>
<resource>
<role>ICON_48</role>
<file>${project.basedir}/src/main/meta/icon48.png</file>
<entryName>icon48.png</entryName>
</resource>
<resource>
<role>ICON_64</role>
<file>${project.basedir}/src/main/meta/icon64.png</file>
<entryName>icon64.png</entryName>
</resource>
<resource>
<role>ICON_128</role>
<file>${project.basedir}/src/main/meta/icon128.png</file>
<entryName>icon128.png</entryName>
</resource>
<resource>
<role>SCREENSHOT</role>
<file>${project.basedir}/src/main/meta/screenshot.png</file>
<entryName>screenshot.png</entryName>
<captions>
<caption>
<language>en</language>
<text>The main captions screen.</text>
</caption>
</captions>
</resource>
<resource>
<role>ICO_WINDOWS</role>
<file>${project.basedir}/src/main/meta/icon.ico</file>
<entryName>icon.ico</entryName>
</resource>
<resource>
<role>LICENSE</role>
<file>${project.basedir}/../README-LICENSE.txt</file>
<entryName>license.txt</entryName>
</resource>
</resources>
</configuration>
</execution>
</executions>
Expand Down
67 changes: 0 additions & 67 deletions com.io7m.laurel.distribution/src/main/assembly/distribution.xml

This file was deleted.

51 changes: 51 additions & 0 deletions com.io7m.laurel.distribution/src/main/meta/description-en.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>

<LongDescription xmlns="urn:com.io7m.montarre.package:1"
Language="en">

<Paragraph>
The Laurel application attempts to provide tools to assist with image captioning within the context of machine
learning.
</Paragraph>

<Paragraph>
In particular, the application is geared towards the management of smaller datasets (in the range of thousands of
images) for use in techniques such as LORA training.
</Paragraph>

<Feature>
A user interface for managing images and captions for those images.
</Feature>

<Feature>
A caption categorization system for assisting with keeping captions consistent across large datasets.
</Feature>

<Feature>
The ability to import captions and images into a dataset from a directory hierarchy.
</Feature>

<Feature>
The ability to export captions and images into a directory for use in training scripts.
</Feature>

<Feature>
A persistent undo/redo system that can store every change ever made to a dataset, including the ability to
effectively revert to an earlier version at any time.
</Feature>

<Feature>
A carefully-engineered Java API for manipulating datasets; the command-line tools and user interface are thin shells
over this API.
</Feature>

<Feature>
Datasets are backed by SQLite for reliable, transactional updates, and a file format that is designed to endure for
decades to come.
</Feature>

<Feature>
Command line tools for automating operations such as importing, exporting, and interrogating metadata.
</Feature>

</LongDescription>
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 0 additions & 23 deletions com.io7m.laurel.distribution/src/main/sh/laurel

This file was deleted.

Loading

0 comments on commit 712e214

Please sign in to comment.