Compare commits
24 commits
0fe75f0e45
...
44a3e406a8
Author | SHA1 | Date | |
---|---|---|---|
44a3e406a8 | |||
cdbbe92e89 | |||
d62ada6c53 | |||
342712e72f | |||
59c17419a9 | |||
ac978f9555 | |||
4f97663619 | |||
7723a55306 | |||
45c8131c84 | |||
147bd635fc | |||
a0e78d7fa6 | |||
7e32c3ad6f | |||
6e6a5ce191 | |||
eb3f749ba1 | |||
f005cb7b17 | |||
dbec9f22b2 | |||
ab7c1a4c1c | |||
e37c4ad69b | |||
cbcdb22670 | |||
babf14a8d2 | |||
bae8079268 | |||
cf5405478f | |||
31029a8cac | |||
7821dd0142 |
14 changed files with 1056 additions and 858 deletions
19
.github/workflows/release.yml
vendored
19
.github/workflows/release.yml
vendored
|
@ -9,7 +9,7 @@ permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
release:
|
||||||
runs-on: antville
|
runs-on: antville
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
@ -18,10 +18,22 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: ./gradlew assembleDist
|
run: ./gradlew assembleDist
|
||||||
|
|
||||||
|
- name: Create release notes
|
||||||
|
id: create_release_notes
|
||||||
|
run: |
|
||||||
|
release_notes=$(npx git-cliff@latest --latest)
|
||||||
|
# Write the release notes as a heredoc to the workflow output
|
||||||
|
# ⚠️ No white space around `<<` is crucial!
|
||||||
|
echo "release_notes<<.eot0x03" >> $GITHUB_OUTPUT
|
||||||
|
echo "$release_notes" >> $GITHUB_OUTPUT
|
||||||
|
echo ".eot0x03" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Create release
|
- name: Create release
|
||||||
uses: actions/forgejo-release@v2
|
uses: actions/forgejo-release@v2
|
||||||
with:
|
with:
|
||||||
|
@ -30,7 +42,8 @@ jobs:
|
||||||
token: ${{ github.token }}
|
token: ${{ github.token }}
|
||||||
title: Antville ${{ github.ref_name }}
|
title: Antville ${{ github.ref_name }}
|
||||||
release-dir: build/distributions
|
release-dir: build/distributions
|
||||||
release-notes-assistant: true
|
release-notes: ${{ steps.create_release_notes.outputs.release_notes }}
|
||||||
|
hide-archive-link: true
|
||||||
verbose: true
|
verbose: true
|
||||||
|
|
||||||
- name: Create release at GitHub
|
- name: Create release at GitHub
|
||||||
|
@ -38,7 +51,7 @@ jobs:
|
||||||
gh release create "$GITHUB_REF_NAME" \
|
gh release create "$GITHUB_REF_NAME" \
|
||||||
--repo "$GITHUB_REPOSITORY" \
|
--repo "$GITHUB_REPOSITORY" \
|
||||||
--title "Antville ${{ github.ref_name }}" \
|
--title "Antville ${{ github.ref_name }}" \
|
||||||
--generate-notes
|
--notes "${{ steps.create_release_notes.outputs.release_notes }}"
|
||||||
|
|
||||||
- name: Upload release assets to GitHub
|
- name: Upload release assets to GitHub
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Helma Object Publisher
|
## Helma Object Publisher
|
||||||
|
|
||||||
Antville needs Helma Object Publisher to be installed on the desired machine. If not already done so please [download Helma](https://github.com/antville/helma/releases) and follow the [installation instructions](https://github.com/antville/helma/#how-to-helma).
|
Antville needs Helma Object Publisher to be installed on the desired machine. If not already done so please [download Helma](https://code.host.antville.org/antville/helma/releases) and follow the [installation instructions](https://code.host.antville.org/antville/helma/#how-to-helma).
|
||||||
|
|
||||||
## SQL Database
|
## SQL Database
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# License
|
# License
|
||||||
|
|
||||||
Copyright 2001-2020 by the Workers of Antville.
|
Copyright 2001-2025 by Antville – Verein für Entwicklung, Betrieb und
|
||||||
|
Unterstützung freier Publishing-Software, Austria.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|
|
@ -14,7 +14,7 @@ There still could be bugs hidden in Antville’s source code. If you find one pl
|
||||||
|
|
||||||
## System Requirements
|
## System Requirements
|
||||||
|
|
||||||
To run Antville you need [Helma Object Publisher](https://github.com/antville/helma) and a relational database software. We tested Antville with [PostgreSQL](https://postgresql.org) and [MySQL](https://mysql.com) – [MariaDB](https://mariadb.com) should work, too.
|
To run Antville you need [Helma Object Publisher](https://code.host.antville.org/antville/helma) and a relational database software. We tested Antville with [PostgreSQL](https://postgresql.org) and [MySQL](https://mysql.com) – [MariaDB](https://mariadb.com) should work, too.
|
||||||
|
|
||||||
To enable Antville sending notification e-mails you need access to an SMTP server.
|
To enable Antville sending notification e-mails you need access to an SMTP server.
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ Antville is open-source, and we want to encourage you to change its code accordi
|
||||||
|
|
||||||
## About Helma Object Publisher
|
## About Helma Object Publisher
|
||||||
|
|
||||||
[Helma Object Publisher](https://github.com/antville/helma) is an open source project providing a powerful, fast and scriptable web application server written in Java.
|
[Helma Object Publisher](https://code.host.antville.org/antville/helma) is an open source project providing a powerful, fast and scriptable web application server written in Java.
|
||||||
|
|
||||||
Define HopObjects and map them to a relational database table. Create, change and delete HopObjects at your whim using a comfortable object-container model. Manual fiddling around with database code is not necessary.
|
Define HopObjects and map them to a relational database table. Create, change and delete HopObjects at your whim using a comfortable object-container model. Manual fiddling around with database code is not necessary.
|
||||||
|
|
||||||
|
|
73
build.gradle
73
build.gradle
|
@ -42,15 +42,19 @@ allprojects {
|
||||||
|
|
||||||
version = distVersion()
|
version = distVersion()
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
lessCss
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'org.commonmark:commonmark:0.24.0'
|
implementation 'org.commonmark:commonmark:0.24.0'
|
||||||
implementation 'org.commonmark:commonmark-ext-autolink:0.24.0'
|
implementation 'org.commonmark:commonmark-ext-autolink:0.24.0'
|
||||||
implementation 'org.commonmark:commonmark-ext-gfm-strikethrough:0.24.0'
|
implementation 'org.commonmark:commonmark-ext-gfm-strikethrough:0.24.0'
|
||||||
implementation 'org.commonmark:commonmark-ext-gfm-tables:0.24.0'
|
implementation 'org.commonmark:commonmark-ext-gfm-tables:0.24.0'
|
||||||
implementation 'org.jsoup:jsoup:1.18.3'
|
implementation 'org.jsoup:jsoup:1.19.1'
|
||||||
implementation 'rome:rome:1.0'
|
implementation 'rome:rome:1.0'
|
||||||
|
|
||||||
implementation('org.lesscss:lesscss:1.7.0.1.1') {
|
lessCss('org.lesscss:lesscss:1.7.0.1.1') {
|
||||||
exclude group: 'org.mozilla', module: 'rhino'
|
exclude group: 'org.mozilla', module: 'rhino'
|
||||||
exclude group: 'org.slf4j', module: 'slf4j-api'
|
exclude group: 'org.slf4j', module: 'slf4j-api'
|
||||||
exclude group: 'org.slf4j', module: 'slf4j-simple'
|
exclude group: 'org.slf4j', module: 'slf4j-simple'
|
||||||
|
@ -291,25 +295,80 @@ tasks.register('distZip', Zip) {
|
||||||
inputs.dir antvilleInstallDir
|
inputs.dir antvilleInstallDir
|
||||||
outputs.file "$outputDir/$outputFile"
|
outputs.file "$outputDir/$outputFile"
|
||||||
|
|
||||||
from antvilleInstallDir
|
from (antvilleInstallDir) {
|
||||||
|
into "antville-${version}"
|
||||||
|
}
|
||||||
|
|
||||||
destinationDirectory = file(outputDir)
|
destinationDirectory = file(outputDir)
|
||||||
archiveFileName = outputFile
|
archiveFileName = outputFile
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('distTar', Tar) {
|
tasks.register('distTar', Tar) {
|
||||||
description 'Creates the Antville download package as Bzip2 file.'
|
description 'Creates the Antville download package as compressed archive file.'
|
||||||
group 'distribution'
|
group 'distribution'
|
||||||
dependsOn 'assemble'
|
dependsOn 'assemble'
|
||||||
|
|
||||||
def version = project.distVersion()
|
def version = project.distVersion()
|
||||||
def outputDir = "${project.buildDir}/distributions"
|
def outputDir = "${project.buildDir}/distributions"
|
||||||
def outputFile = "antville-${version}.tbz"
|
def outputFile = "antville-${version}.tgz"
|
||||||
|
|
||||||
inputs.dir antvilleInstallDir
|
inputs.dir antvilleInstallDir
|
||||||
outputs.file "$outputDir/$outputFile"
|
outputs.file "$outputDir/$outputFile"
|
||||||
|
|
||||||
from antvilleInstallDir
|
from (antvilleInstallDir) {
|
||||||
compression = Compression.BZIP2
|
into "antville-${version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
compression = Compression.GZIP
|
||||||
destinationDirectory = file(outputDir)
|
destinationDirectory = file(outputDir)
|
||||||
archiveFileName = outputFile
|
archiveFileName = outputFile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Task to patch the lesscss JAR file
|
||||||
|
// This task modifies the lessc-rhino-1.7.0.js file in the JAR to comment out an annoying console.log statement (“done”)
|
||||||
|
def patchLessCssJar = tasks.register('patchLessCssJar') {
|
||||||
|
def name = 'lesscss-1.7.0.1.1'
|
||||||
|
def targetFile = 'META-INF/lessc-rhino-1.7.0.js' // File to patch
|
||||||
|
def tempDir = file("${buildDir}/${name}") // Temporary directory for extraction
|
||||||
|
def patchedJar = file("${buildDir}/${name}-patched.jar") // Output patched JAR
|
||||||
|
|
||||||
|
outputs.file patchedJar
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
if (tempDir.exists()) {
|
||||||
|
tempDir.deleteDir()
|
||||||
|
}
|
||||||
|
tempDir.mkdirs()
|
||||||
|
|
||||||
|
def jarFile = configurations.lessCss.find {
|
||||||
|
it.name.contains(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
println "Patching $jarFile…"
|
||||||
|
ant.unzip(src: jarFile, dest: tempDir)
|
||||||
|
|
||||||
|
def targetFilePath = new File(tempDir, targetFile)
|
||||||
|
def content = targetFilePath.text
|
||||||
|
content = content.replace('console.log("done")', '// console.log("done")')
|
||||||
|
targetFilePath.text = content
|
||||||
|
|
||||||
|
ant.zip(destfile: patchedJar) {
|
||||||
|
fileset(dir: tempDir)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure the patchLessCssJar task runs before the classes task
|
||||||
|
tasks.named('build').configure {
|
||||||
|
dependsOn patchLessCssJar
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exclude the original lesscss JAR from the runtime classpath
|
||||||
|
// and include the patched JAR instead
|
||||||
|
configurations.runtimeClasspath {
|
||||||
|
exclude group: 'org.lesscss', module: 'lesscss'
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
runtimeOnly(patchLessCssJar.map { it.outputs.files })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
52
cliff.toml
Normal file
52
cliff.toml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
# git-cliff ~ default configuration file
|
||||||
|
# https://git-cliff.org/docs/configuration
|
||||||
|
#
|
||||||
|
# Lines starting with "#" are comments.
|
||||||
|
# Configuration options are organized into tables and keys.
|
||||||
|
# See documentation for more information on available options.
|
||||||
|
|
||||||
|
[changelog]
|
||||||
|
trim = true
|
||||||
|
|
||||||
|
header = "## Changes"
|
||||||
|
|
||||||
|
body = """
|
||||||
|
{% for group, commits in commits | filter(attribute="merge_commit") | group_by(attribute="group") %}
|
||||||
|
### {{ group | striptags | trim | upper_first }}
|
||||||
|
{% for commit in commits %}
|
||||||
|
* [<tt>{{ commit.id | split(pat="") | slice(end=11) | join() }}</tt>]\
|
||||||
|
(https://code.host.antville.org/antville/antville/commit/{{ commit.id }}) \
|
||||||
|
{% if commit.breaking %}**Breaking:** {% endif %}\
|
||||||
|
{{ commit.message | split(pat="\\n") | first | upper_first | escape }}\
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
**Full Changelog:** [{{ previous.version }} → {{ version }}]\
|
||||||
|
(https://code.host.antville.org/antville/antville/compare/\
|
||||||
|
{{ previous.version | urlencode }}..{{ version | urlencode }})\n\n
|
||||||
|
"""
|
||||||
|
|
||||||
|
footer = """
|
||||||
|
Generated by [git-cliff](https://git-cliff.org/).
|
||||||
|
"""
|
||||||
|
|
||||||
|
[git]
|
||||||
|
conventional_commits = false
|
||||||
|
filter_commits = false
|
||||||
|
filter_unconventional = false
|
||||||
|
protect_breaking_commits = false
|
||||||
|
sort_commits = "newest"
|
||||||
|
split_commits = false
|
||||||
|
topo_order = false
|
||||||
|
|
||||||
|
commit_parsers = [
|
||||||
|
{ message = "^Apply \\d+ suggestion", skip = true },
|
||||||
|
{ message = "^Merge .*(branch|dependabot|dependency|renovate)", skip = true },
|
||||||
|
{ message = "^Lock file maintenance", skip = true },
|
||||||
|
{ message = "yarn\\.lock", skip = true },
|
||||||
|
|
||||||
|
{ message = "^[Ff]ix", group = "<!-- 0 --> 🐛 Bug Fixes" },
|
||||||
|
{ field = "author.name", pattern = "[Rr]enovate|[Dd]ependabot", group = "<!-- 3 --> 📦 Dependency Updates" },
|
||||||
|
{ message = "^Merge pull request", group = "<!-- 1 --> 🔀 Merges" },
|
||||||
|
{ message = ".*", group = "<!-- 2 --> Uncategorized" },
|
||||||
|
]
|
|
@ -22,8 +22,9 @@
|
||||||
String.ELLIPSIS = '…';
|
String.ELLIPSIS = '…';
|
||||||
|
|
||||||
app.addRepository(app.dir + '/../lib/jdom-1.0.jar');
|
app.addRepository(app.dir + '/../lib/jdom-1.0.jar');
|
||||||
app.addRepository(app.dir + '/../lib/jsoup-1.18.3.jar');
|
app.addRepository(app.dir + '/../lib/jsoup-1.19.1.jar');
|
||||||
app.addRepository(app.dir + '/../lib/lesscss-1.7.0.1.1.jar');
|
// See the patchLessCssJar task in build.gradle
|
||||||
|
app.addRepository(app.dir + '/../lib/lesscss-1.7.0.1.1-patched.jar');
|
||||||
app.addRepository(app.dir + '/../lib/rome-1.0.jar');
|
app.addRepository(app.dir + '/../lib/rome-1.0.jar');
|
||||||
|
|
||||||
app.addRepository('modules/core/Global.js');
|
app.addRepository('modules/core/Global.js');
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
antville.repo.url = https://code.host.antville.org/github.com/antville/antville.git
|
antville.repo.url = https://code.host.antville.org/github.com/antville/antville.git
|
||||||
helma.download.url = https://code.host.antville.org/antville/helma/releases/download/25.1.3/helma-25.1.3.tgz
|
helma.download.url = https://code.host.antville.org/antville/helma/releases/download/25.3.1/helma-25.3.1.tgz
|
||||||
|
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
2
gradlew
vendored
2
gradlew
vendored
|
@ -205,7 +205,7 @@ fi
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command:
|
# Collect all arguments for the java command:
|
||||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# and any embedded shellness will be escaped.
|
# and any embedded shellness will be escaped.
|
||||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# treated as '${Hostname}' itself on the command line.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|
1726
package-lock.json
generated
1726
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -31,8 +31,8 @@
|
||||||
"author": "The Antville People",
|
"author": "The Antville People",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"alpinejs": "3.14.8",
|
"alpinejs": "3.14.9",
|
||||||
"codemirror": "5.65.18",
|
"codemirror": "5.65.19",
|
||||||
"jquery": "3.7.1",
|
"jquery": "3.7.1",
|
||||||
"jquery-collagePlus": "github:antville/jquery-collagePlus#0.3.4",
|
"jquery-collagePlus": "github:antville/jquery-collagePlus#0.3.4",
|
||||||
"js-md5": "0.8.3",
|
"js-md5": "0.8.3",
|
||||||
|
@ -40,9 +40,9 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"browserify": "17.0.1",
|
"browserify": "17.0.1",
|
||||||
"generate-license-file": "3.7.0",
|
"generate-license-file": "4.0.0",
|
||||||
"jsdoc": "4.0.4",
|
"jsdoc": "4.0.4",
|
||||||
"less": "4.2.2",
|
"less": "4.3.0",
|
||||||
"less-plugin-clean-css": "1.6.0",
|
"less-plugin-clean-css": "1.6.0",
|
||||||
"npm-run-all2": "7.0.2",
|
"npm-run-all2": "7.0.2",
|
||||||
"onchange": "7.1.0",
|
"onchange": "7.1.0",
|
||||||
|
|
|
@ -195,25 +195,31 @@ tasks.register('distZip', Zip) {
|
||||||
inputs.dir helmaInstallDir
|
inputs.dir helmaInstallDir
|
||||||
outputs.file "$outputDir/$outputFile"
|
outputs.file "$outputDir/$outputFile"
|
||||||
|
|
||||||
from helmaInstallDir
|
from (helmaInstallDir) {
|
||||||
|
into "antclick-${version}"
|
||||||
|
}
|
||||||
|
|
||||||
destinationDirectory = file(outputDir)
|
destinationDirectory = file(outputDir)
|
||||||
archiveFileName = outputFile
|
archiveFileName = outputFile
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('distTar', Tar) {
|
tasks.register('distTar', Tar) {
|
||||||
description 'Creates the AntClick download package as Bzip2 file.'
|
description 'Creates the AntClick download package as compressed archive file.'
|
||||||
group 'distribution'
|
group 'distribution'
|
||||||
dependsOn 'assemble'
|
dependsOn 'assemble'
|
||||||
|
|
||||||
def version = project.distVersion()
|
def version = project.distVersion()
|
||||||
def outputDir = "${rootProject.buildDir}/distributions"
|
def outputDir = "${rootProject.buildDir}/distributions"
|
||||||
def outputFile = "antclick-${version}.tbz"
|
def outputFile = "antclick-${version}.tgz"
|
||||||
|
|
||||||
inputs.dir helmaInstallDir
|
inputs.dir helmaInstallDir
|
||||||
outputs.file "$outputDir/$outputFile"
|
outputs.file "$outputDir/$outputFile"
|
||||||
|
|
||||||
from helmaInstallDir
|
from (helmaInstallDir) {
|
||||||
compression = Compression.BZIP2
|
into "antclick-${version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
compression = Compression.GZIP
|
||||||
destinationDirectory = file(outputDir)
|
destinationDirectory = file(outputDir)
|
||||||
archiveFileName = outputFile
|
archiveFileName = outputFile
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue