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
|
||||
|
||||
jobs:
|
||||
build:
|
||||
release:
|
||||
runs-on: antville
|
||||
|
||||
env:
|
||||
|
@ -18,10 +18,22 @@ jobs:
|
|||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Build with Gradle
|
||||
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
|
||||
uses: actions/forgejo-release@v2
|
||||
with:
|
||||
|
@ -30,7 +42,8 @@ jobs:
|
|||
token: ${{ github.token }}
|
||||
title: Antville ${{ github.ref_name }}
|
||||
release-dir: build/distributions
|
||||
release-notes-assistant: true
|
||||
release-notes: ${{ steps.create_release_notes.outputs.release_notes }}
|
||||
hide-archive-link: true
|
||||
verbose: true
|
||||
|
||||
- name: Create release at GitHub
|
||||
|
@ -38,7 +51,7 @@ jobs:
|
|||
gh release create "$GITHUB_REF_NAME" \
|
||||
--repo "$GITHUB_REPOSITORY" \
|
||||
--title "Antville ${{ github.ref_name }}" \
|
||||
--generate-notes
|
||||
--notes "${{ steps.create_release_notes.outputs.release_notes }}"
|
||||
|
||||
- name: Upload release assets to GitHub
|
||||
run: |
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## 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
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# 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");
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
|
@ -43,7 +43,7 @@ Antville is open-source, and we want to encourage you to change its code accordi
|
|||
|
||||
## 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.
|
||||
|
||||
|
|
73
build.gradle
73
build.gradle
|
@ -42,15 +42,19 @@ allprojects {
|
|||
|
||||
version = distVersion()
|
||||
|
||||
configurations {
|
||||
lessCss
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.commonmark:commonmark: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-tables:0.24.0'
|
||||
implementation 'org.jsoup:jsoup:1.18.3'
|
||||
implementation 'org.jsoup:jsoup:1.19.1'
|
||||
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.slf4j', module: 'slf4j-api'
|
||||
exclude group: 'org.slf4j', module: 'slf4j-simple'
|
||||
|
@ -291,25 +295,80 @@ tasks.register('distZip', Zip) {
|
|||
inputs.dir antvilleInstallDir
|
||||
outputs.file "$outputDir/$outputFile"
|
||||
|
||||
from antvilleInstallDir
|
||||
from (antvilleInstallDir) {
|
||||
into "antville-${version}"
|
||||
}
|
||||
|
||||
destinationDirectory = file(outputDir)
|
||||
archiveFileName = outputFile
|
||||
}
|
||||
|
||||
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'
|
||||
dependsOn 'assemble'
|
||||
|
||||
def version = project.distVersion()
|
||||
def outputDir = "${project.buildDir}/distributions"
|
||||
def outputFile = "antville-${version}.tbz"
|
||||
def outputFile = "antville-${version}.tgz"
|
||||
|
||||
inputs.dir antvilleInstallDir
|
||||
outputs.file "$outputDir/$outputFile"
|
||||
|
||||
from antvilleInstallDir
|
||||
compression = Compression.BZIP2
|
||||
from (antvilleInstallDir) {
|
||||
into "antville-${version}"
|
||||
}
|
||||
|
||||
compression = Compression.GZIP
|
||||
destinationDirectory = file(outputDir)
|
||||
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 = '…';
|
||||
|
||||
app.addRepository(app.dir + '/../lib/jdom-1.0.jar');
|
||||
app.addRepository(app.dir + '/../lib/jsoup-1.18.3.jar');
|
||||
app.addRepository(app.dir + '/../lib/lesscss-1.7.0.1.1.jar');
|
||||
app.addRepository(app.dir + '/../lib/jsoup-1.19.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('modules/core/Global.js');
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
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
|
||||
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
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
|
2
gradlew
vendored
2
gradlew
vendored
|
@ -205,7 +205,7 @@ fi
|
|||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# 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.
|
||||
# * 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.
|
||||
|
|
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",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"alpinejs": "3.14.8",
|
||||
"codemirror": "5.65.18",
|
||||
"alpinejs": "3.14.9",
|
||||
"codemirror": "5.65.19",
|
||||
"jquery": "3.7.1",
|
||||
"jquery-collagePlus": "github:antville/jquery-collagePlus#0.3.4",
|
||||
"js-md5": "0.8.3",
|
||||
|
@ -40,9 +40,9 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"browserify": "17.0.1",
|
||||
"generate-license-file": "3.7.0",
|
||||
"generate-license-file": "4.0.0",
|
||||
"jsdoc": "4.0.4",
|
||||
"less": "4.2.2",
|
||||
"less": "4.3.0",
|
||||
"less-plugin-clean-css": "1.6.0",
|
||||
"npm-run-all2": "7.0.2",
|
||||
"onchange": "7.1.0",
|
||||
|
|
|
@ -195,25 +195,31 @@ tasks.register('distZip', Zip) {
|
|||
inputs.dir helmaInstallDir
|
||||
outputs.file "$outputDir/$outputFile"
|
||||
|
||||
from helmaInstallDir
|
||||
from (helmaInstallDir) {
|
||||
into "antclick-${version}"
|
||||
}
|
||||
|
||||
destinationDirectory = file(outputDir)
|
||||
archiveFileName = outputFile
|
||||
}
|
||||
|
||||
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'
|
||||
dependsOn 'assemble'
|
||||
|
||||
def version = project.distVersion()
|
||||
def outputDir = "${rootProject.buildDir}/distributions"
|
||||
def outputFile = "antclick-${version}.tbz"
|
||||
def outputFile = "antclick-${version}.tgz"
|
||||
|
||||
inputs.dir helmaInstallDir
|
||||
outputs.file "$outputDir/$outputFile"
|
||||
|
||||
from helmaInstallDir
|
||||
compression = Compression.BZIP2
|
||||
from (helmaInstallDir) {
|
||||
into "antclick-${version}"
|
||||
}
|
||||
|
||||
compression = Compression.GZIP
|
||||
destinationDirectory = file(outputDir)
|
||||
archiveFileName = outputFile
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue