You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2026/07/01 06:03:18 UTC

(groovy-website) branch asf-site updated: minor refinements of Groovy 6 release notes and some deadlink tweaks

This is an automated email from the ASF dual-hosted git repository.

paulk-asert pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 914e8b1  minor refinements of Groovy 6 release notes and some deadlink tweaks
914e8b1 is described below

commit 914e8b1c315b1367a849331c51382c6fdfcb6281
Author: Paul King <pa...@asert.com.au>
AuthorDate: Wed Jul 1 16:03:11 2026 +1000

    minor refinements of Groovy 6 release notes and some deadlink tweaks
---
 site/src/site/blog/community-over-code-eu-2024.adoc            | 2 +-
 site/src/site/blog/community-over-code-na-2023.adoc            | 2 +-
 site/src/site/blog/fizzbuzz-with-groovy-and-emojis.adoc        | 4 ++--
 site/src/site/blog/groovy-ai.adoc                              | 2 +-
 site/src/site/blog/groovy-gatherers.adoc                       | 2 +-
 site/src/site/blog/groovy-oracle23ai.adoc                      | 2 +-
 site/src/site/blog/groovy-record-performance.adoc              | 2 +-
 site/src/site/blog/groovy-text-similarity.adoc                 | 6 +++---
 site/src/site/blog/groovy6-functional.adoc                     | 2 +-
 site/src/site/blog/life-on-mars-units-of.adoc                  | 4 ++--
 site/src/site/blog/matrix-calculations-with-groovy-apache.adoc | 4 ++--
 site/src/site/blog/quake3-inverse-square-root.adoc             | 2 +-
 site/src/site/blog/whiskey-clustering-with-groovy-and.adoc     | 2 +-
 site/src/site/pages/buildstatus.groovy                         | 2 +-
 site/src/site/wiki/GEP-24.adoc                                 | 4 ++--
 site/src/site/wiki/GEP-26.adoc                                 | 2 +-
 16 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/site/src/site/blog/community-over-code-eu-2024.adoc b/site/src/site/blog/community-over-code-eu-2024.adoc
index fd3557d..258b7b8 100644
--- a/site/src/site/blog/community-over-code-eu-2024.adoc
+++ b/site/src/site/blog/community-over-code-eu-2024.adoc
@@ -223,7 +223,7 @@ Check out the Groovy https://github.com/apache/apachecon-eu/blob/main/static/pos
 See also:
 
 * https://photos.apachecon.com/index.php?/category/38[Additional photos] (may be added to over time).
-* https://eu.communityovercode.org/program/[The official program] includes all tracks and will include
+* https://communityovercode.org/[The official program] includes all tracks and will include
 links to the slides of the talks if/when available.
 
 Other trip reports:
diff --git a/site/src/site/blog/community-over-code-na-2023.adoc b/site/src/site/blog/community-over-code-na-2023.adoc
index 1771b86..6a505ce 100644
--- a/site/src/site/blog/community-over-code-na-2023.adoc
+++ b/site/src/site/blog/community-over-code-na-2023.adoc
@@ -598,4 +598,4 @@ See also:
 * https://photos.apachecon.com/index.php?/category/37[Additional photos] grouped roughly into days and sessions within each day.
 * https://communityovercode.org/past-sessions/community-over-code-na-2023/[The official schedule] includes all tracks and will include
 links to the slides of the talks if/when available.
-* Details for https://eu.communityovercode.org/[Community over Code EU] next year.
\ No newline at end of file
+* Details for https://communityovercode.org/[Community over Code EU] next year.
\ No newline at end of file
diff --git a/site/src/site/blog/fizzbuzz-with-groovy-and-emojis.adoc b/site/src/site/blog/fizzbuzz-with-groovy-and-emojis.adoc
index 6352ace..fe642ca 100644
--- a/site/src/site/blog/fizzbuzz-with-groovy-and-emojis.adoc
+++ b/site/src/site/blog/fizzbuzz-with-groovy-and-emojis.adoc
@@ -31,7 +31,7 @@ The emoji idea is borrowed, with thanks, from Don Raab's
 https://donraab.medium.com/ternary-predicate-and-pattern-matching-for-fizzbuzz-with-java-26-646c812a137b[_Ternary,
 Predicate, and Pattern Matching for FizzBuzz with Java 26_], which dresses up
 its Java variants the same way. It is also where the emoji appear in the
-https://github.com/paulk-asert/groovy-verify#fizzbuzz--element-wise-array-correctness[`groovy-verify`]
+https://github.com/paulk-asert/groovy-verify/blob/main/examples/miscellaneous.md[`groovy-verify`]
 project, one of whose examples we revisit below.
 
 The starting point for this post was a reader's first attempt, which already
@@ -601,7 +601,7 @@ metaprogramming to the task. Pick the one that makes you smile — and add emoji
 
 * Companion code for this post: https://github.com/paulk-asert/groovy-fizzbuzz
 * Don Raab's https://donraab.medium.com/ternary-predicate-and-pattern-matching-for-fizzbuzz-with-java-26-646c812a137b[Ternary, Predicate, and Pattern Matching for FizzBuzz with Java 26] — the source of the emoji idea
-* The https://github.com/paulk-asert/groovy-verify#fizzbuzz--element-wise-array-correctness[`groovy-verify`] FizzBuzz example and its Concurrency "lite" section
+* The https://github.com/paulk-asert/groovy-verify/blob/main/examples/miscellaneous.md[`groovy-verify`] FizzBuzz example and its Concurrency "lite" section
 * https://groovy.apache.org/blog/gpars-meets-virtual-threads[GPars meets Virtual Threads]
 * https://www.reddit.com/r/coding/comments/59iijd/the_most_elegant_implementation_of_fizzbuzz/[The most elegant implementation of FizzBuzz] (Reddit)
 * link:../wiki/GEP-18.html[GEP-18 — Integrated Concurrency and Parallel Processing]
diff --git a/site/src/site/blog/groovy-ai.adoc b/site/src/site/blog/groovy-ai.adoc
index 364898f..ea26f1c 100644
--- a/site/src/site/blog/groovy-ai.adoc
+++ b/site/src/site/blog/groovy-ai.adoc
@@ -31,7 +31,7 @@ We also used Groovy 5 and JDK 25, but the examples should work on other Groovy a
 == Using Ollama4j
 
 Since we are using Ollama, we'll start with a library aimed directly at that tool.
-https://github.com/ollama/ollama4j[_Ollama4j_] provides a client for interacting with local or remote https://ollama.com/[Ollama] models. The examples here are
+https://github.com/ollama4j/ollama4j[_Ollama4j_] provides a client for interacting with local or remote https://ollama.com/[Ollama] models. The examples here are
 geared towards local models, but see the Ollama documentation if you want to use Ollama _cloud_ models.
 
 We first create an instance of the `Ollama` class.
diff --git a/site/src/site/blog/groovy-gatherers.adoc b/site/src/site/blog/groovy-gatherers.adoc
index 0cfbea9..15bef9e 100644
--- a/site/src/site/blog/groovy-gatherers.adoc
+++ b/site/src/site/blog/groovy-gatherers.adoc
@@ -492,7 +492,7 @@ assert Collections.indexOfSubList(words, search) != -1
 
 Let's have a look at some possible stream implementations.
 But first a diversion. For any functional programmers who might have dabbled
-with Haskell, you may have seen the book http://learnyouahaskell.com/[Learn You a Haskell for Great Good!]. It sets an interesting exercise for finding a "Needle in the Haystack"
+with Haskell, you may have seen the book https://learnyouahaskell.github.io/[Learn You a Haskell for Great Good!]. It sets an interesting exercise for finding a "Needle in the Haystack"
 using `inits` and `tails`. So what are `inits` and `tails`? They are built-in functions
 in Haskell and Groovy:
 
diff --git a/site/src/site/blog/groovy-oracle23ai.adoc b/site/src/site/blog/groovy-oracle23ai.adoc
index 7154530..8e84516 100644
--- a/site/src/site/blog/groovy-oracle23ai.adoc
+++ b/site/src/site/blog/groovy-oracle23ai.adoc
@@ -213,7 +213,7 @@ We know the result was Versicolor for that data point.
 
 * Source code: https://github.com/paulk-asert/groovy-oracle23ai
 * https://docs.groovy-lang.org/latest/html/documentation/sql-userguide.html[Groovy SQL User Guide]
-* https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/oracle-ai-vector-search-users-guide.pdf[Oracle AI Vector Search User's Guide]
+* https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/index.html[Oracle AI Vector Search User's Guide]
 
 == Conclusion
 
diff --git a/site/src/site/blog/groovy-record-performance.adoc b/site/src/site/blog/groovy-record-performance.adoc
index edbc567..f77af1d 100644
--- a/site/src/site/blog/groovy-record-performance.adoc
+++ b/site/src/site/blog/groovy-record-performance.adoc
@@ -249,7 +249,7 @@ record GroovyRecordScalaMurmur3Label(String x0, String x1, String x2, String x3,
 And this has almost identical performance to the native Scala example from our earlier bar chart.
 
 If you want a smaller dependency than the Scala runtime jar, you could use
-the https://guava.dev/releases/31.0-jre/api/docs/src-html/com/google/common/hash/Hashing.html#line.158[32-bit Murmur3] algorithm from https://github.com/google/guava[Guava]
+the https://guava.dev/releases/31.0-jre/api/docs/com/google/common/hash/Hashing.html[32-bit Murmur3] algorithm from https://github.com/google/guava[Guava]
 or write your own combiner to combine hashes produced by Apache Commons Codec's
 https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/MurmurHash3.html#hash32x86-byte:A-[Murmur3 algorithm] on the bytes of each String component.
 In my tests, both of these alternatives ended up being slower than borrowing Scala's algorithm,
diff --git a/site/src/site/blog/groovy-text-similarity.adoc b/site/src/site/blog/groovy-text-similarity.adoc
index bd870d6..baa4cac 100644
--- a/site/src/site/blog/groovy-text-similarity.adoc
+++ b/site/src/site/blog/groovy-text-similarity.adoc
@@ -631,7 +631,7 @@ https://en.wikipedia.org/wiki/Word2vec[Word2vec] by Google Research,
 https://nlp.stanford.edu/projects/glove/[GloVe] by Stanford NLP, and
 https://fasttext.cc/[fastText] by Facebook Research.
 We'll use
-https://deeplearning4j.konduit.ai/deeplearning4j/reference/word2vec-glove-doc2vec[DeepLearning4J]
+https://deeplearning4j.konduit.ai/[DeepLearning4J]
 to load and use these models.
 
 * Context-dependent approaches can provide more accurate matching if the context is
@@ -652,7 +652,7 @@ We'll use the https://djl.ai/[Deep Java Library] to load and use both of these m
 === fastText
 Many Word2Vec libraries can read and write models to a standard file format based on the original https://github.com/tmikolov/word2vec[Google implementation].
 
-For example, we can download some of the pre-trained models from the https://radimrehurek.com/gensim/models/word2vec.html[Gensim Python library], convert them to the Word2Vec format, and then open them with https://deeplearning4j.konduit.ai/deeplearning4j/reference/word2vec-glove-doc2vec[DeepLearning4J].
+For example, we can download some of the pre-trained models from the https://radimrehurek.com/gensim/models/word2vec.html[Gensim Python library], convert them to the Word2Vec format, and then open them with https://deeplearning4j.konduit.ai/[DeepLearning4J].
 
 [source,python]
 ----
@@ -1459,7 +1459,7 @@ Other referenced sites:
 * https://github.com/tdebatty/java-string-similarity
 * https://github.com/OpenRefine/OpenRefine
 * https://djl.ai/
-* https://deeplearning4j.konduit.ai/deeplearning4j/reference/word2vec-glove-doc2vec
+* https://deeplearning4j.konduit.ai/
 
 Related libraries and links:
 
diff --git a/site/src/site/blog/groovy6-functional.adoc b/site/src/site/blog/groovy6-functional.adoc
index 1402531..4205835 100644
--- a/site/src/site/blog/groovy6-functional.adoc
+++ b/site/src/site/blog/groovy6-functional.adoc
@@ -1321,7 +1321,7 @@ following the same two-layer pattern used elsewhere in this post.
 * link:../wiki/GEP-20.html[GEP-20 — Destructuring]
 * https://groovy.apache.org/blog/groovy-async-await[Native Async/Await for Groovy] — the `Awaitable` carrier `DO` composes
 * https://groovy.apache.org/blog/groovy-null-checker[NullChecker walkthrough]
-* https://www.functionaljava.org/[FunctionalJava]
+* https://github.com/functionaljava/functionaljava[FunctionalJava]
 * https://github.com/highj/highj[highj — lightweight HKT for Java]
 * https://vavr.io/[Vavr] — Java FP library with `Try`/`Either`/`Validation`/`Option` control carriers, persistent collections, tuples, and the `For(...).yield(...)` For-Comprehension form. The control carriers are in `DO`'s standard allow-list (Groovy 6).
 * https://guaraqe.com/posts/2026-05-24-why-cartesian-categories.html[WireCat: Visual Programming with Cartesian Categories] — the Haskell post that the `wire` demo is modelled on
diff --git a/site/src/site/blog/life-on-mars-units-of.adoc b/site/src/site/blog/life-on-mars-units-of.adoc
index 9ed6645..ad6cc5b 100644
--- a/site/src/site/blog/life-on-mars-units-of.adoc
+++ b/site/src/site/blog/life-on-mars-units-of.adoc
@@ -43,7 +43,7 @@ systems in F# and Swift and Java has had several versions
 
 There are also existing Java libraries like
 http://jscience.org/[JScience] which have been developed, and
-https://objectcomputing.com/resources/publications/sett/june-2006-units-and-measures-with-jscience[shown early promise],
+https://web.archive.org/web/20251018194228/https://objectcomputing.com/resources/publications/sett/june-2006-units-and-measures-with-jscience[shown early promise],
 but now don't seem to be actively maintained. While the
 https://onlinelibrary.wiley.com/doi/10.1002/spe.2926[jury is still out]
 about whether units of measurement systems will spread further into
@@ -477,7 +477,7 @@ The error message is:
 * https://varkor.github.io/blog/2018/07/30/types-for-units-of-measure.html[Types for units of measure]
 * https://www.slideshare.net/keilw/how-jsr-385-could-have-saved-the-mars-climate-orbiter-jfokus-2020[How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020] (slide deck)
 * https://www.manning.com/books/groovy-in-action-second-edition[Groovy in Action] (in particular the DSL chapter)
-* https://objectcomputing.com/resources/publications/sett/june-2006-units-and-measures-with-jscience[Units and Measures with JScience]
+* https://web.archive.org/web/20251018194228/https://objectcomputing.com/resources/publications/sett/june-2006-units-and-measures-with-jscience[Units and Measures with JScience]
 * https://onlinelibrary.wiley.com/doi/10.1002/spe.2926[Unit of measurement libraries, their popularity and suitability]
 * https://speakerdeck.com/glaforge/groovy-domain-specific-languages-techniques[Groovy Domain-Specific Languages techniques] (slide deck)
 * http://docs.groovy-lang.org/docs/latest/html/documentation/core-domain-specific-languages.html[Domain-Specific Languages] (Groovy documentation)
diff --git a/site/src/site/blog/matrix-calculations-with-groovy-apache.adoc b/site/src/site/blog/matrix-calculations-with-groovy-apache.adoc
index 95c940e..887b02f 100644
--- a/site/src/site/blog/matrix-calculations-with-groovy-apache.adoc
+++ b/site/src/site/blog/matrix-calculations-with-groovy-apache.adoc
@@ -10,7 +10,7 @@ https://commons.apache.org/[Apache Commons]
 https://commons.apache.org/proper/commons-math/[Math],
 https://www.ojalgo.org/[ojAlgo],
 https://ejml.org/[EJML], and
-https://deeplearning4j.konduit.ai/nd4j/tutorials/quickstart[Nd4j]
+https://web.archive.org/web/20260417034825/https://deeplearning4j.konduit.ai/nd4j/tutorials/quickstart[Nd4j]
 (part of Eclipse https://deeplearning4j.konduit.ai/[Deeplearning4j]).
 We'll also take a quick
 look at using the incubating Vector API for matrix calculations
@@ -720,7 +720,7 @@ styles may be supported.
 * Apache Commons Math https://commons.apache.org/proper/commons-math/userguide/linear.html[User Guide] and https://github.com/apache/commons-math[GitHub mirror]
 * ojAlgo https://www.ojalgo.org/[website] and https://github.com/optimatika/ojAlgo/[GitHub repo]
 * EJML http://ejml.org/[website] and https://github.com/lessthanoptimal/ejml[GitHub repo]
-* Nd4j https://deeplearning4j.konduit.ai/nd4j/tutorials/quickstart[documentation] and https://github.com/eclipse/deeplearning4j/tree/master/nd4j[GitHub repo]
+* Nd4j https://web.archive.org/web/20260417034825/https://deeplearning4j.konduit.ai/nd4j/tutorials/quickstart[documentation] and https://github.com/eclipse/deeplearning4j/tree/master/nd4j[GitHub repo]
 * https://github.com/paulk-asert/MatrixGroovy[Example code repo]
 * https://www.youtube.com/watch?v=I5WM2wdjr1M[Leslie Matrices for population age distribution modelling] video
 * https://dl.acm.org/doi/abs/10.1145/3386326[A history of the Groovy programming language] paper
diff --git a/site/src/site/blog/quake3-inverse-square-root.adoc b/site/src/site/blog/quake3-inverse-square-root.adoc
index c1a8c45..9fc7266 100644
--- a/site/src/site/blog/quake3-inverse-square-root.adoc
+++ b/site/src/site/blog/quake3-inverse-square-root.adoc
@@ -51,7 +51,7 @@ to and from float and long IEEE 754 32-bit representations, a "magic" constant,
 some bit shifting, and a touch of Newton's method throw in for good measure.
 
 The details have been explained in some detail in numerous blogs, e.g.
-https://suraj.sh/fast-square-root-approximation/[Fast Square Root Approximation]
+https://web.archive.org/web/20250207183256/https://suraj.sh/fast-square-root-approximation[Fast Square Root Approximation]
 and
 https://betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/[Understanding Quake’s Fast Inverse Square Root],
 and videos, e.g.
diff --git a/site/src/site/blog/whiskey-clustering-with-groovy-and.adoc b/site/src/site/blog/whiskey-clustering-with-groovy-and.adoc
index 15dac10..5b25cfc 100644
--- a/site/src/site/blog/whiskey-clustering-with-groovy-and.adoc
+++ b/site/src/site/blog/whiskey-clustering-with-groovy-and.adoc
@@ -11,7 +11,7 @@ https://spark.apache.org/[Apache Spark] to scale up the
 https://en.wikipedia.org/wiki/K-means_clustering[k-means] clustering algorithm.
 Let's look at another useful technology for scaling up this problem,
 https://ignite.apache.org/[Apache Ignite].
-The Ignite team recently released a https://ignite.apache.org/releases/2.14.0/release_notes.html[new version],
+The Ignite team recently released a https://web.archive.org/web/20231109024642/https://ignite.apache.org/releases/2.14.0/release_notes.html[new version],
 but earlier versions are also fine for our example.
 
 Before we start, a quick reminder of the problem.
diff --git a/site/src/site/pages/buildstatus.groovy b/site/src/site/pages/buildstatus.groovy
index e52c8b9..8a5280f 100644
--- a/site/src/site/pages/buildstatus.groovy
+++ b/site/src/site/pages/buildstatus.groovy
@@ -36,7 +36,7 @@ layout 'layouts/main.groovy', true,
                                                 tr {
                                                     td(name)
                                                     td {
-                                                        a(href: "https://ci.groovy-lang.org/viewType.html?buildTypeId=$id&tab=buildTypeStatusDiv&guest=1") {
+                                                        a(href: "https://ci.groovy-lang.org/buildConfiguration/$id?guest=1") {
                                                             img(src: """https://ci.groovy-lang.org/app/rest/builds/buildType:(id:$id)${branch?",branch:$branch":''}/statusIcon""")
                                                         }
                                                     }
diff --git a/site/src/site/wiki/GEP-24.adoc b/site/src/site/wiki/GEP-24.adoc
index f7c08dc..7f51245 100644
--- a/site/src/site/wiki/GEP-24.adoc
+++ b/site/src/site/wiki/GEP-24.adoc
@@ -786,9 +786,9 @@ parallels. The `@Requires` discharge mechanism is shared.
 * link:../releasenotes/groovy-6.0.html#type-checking-extensions[Groovy 6 release notes — type-checking extensions]
 * link:../releasenotes/groovy-6.0.html#human-ai-reasoning[Groovy 6 release notes — Designed for human and AI reasoning]
 * https://www.vavr.io/[Vavr] — the reference design for `Try<T>` and related carriers
-* https://www.functionaljava.org/[FunctionalJava] — `fj.data.Validation` lineage
+* https://github.com/functionaljava/functionaljava[FunctionalJava] — `fj.data.Validation` lineage
 * https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html#exceptionally(java.util.function.Function)[`CompletableFuture.exceptionally`] — JDK precedent for the recover-callback shape
-* https://github.com/joeduffy/articles/blob/master/error-model.md[Joe Duffy — "The Error Model"] — Midori's hybrid exception/Result design that informs the spec-layer / carrier-layer split
+* https://joeduffyblog.com/2016/02/07/the-error-model/[Joe Duffy — "The Error Model"] — Midori's hybrid exception/Result design that informs the spec-layer / carrier-layer split
 
 .Update history
 ****
diff --git a/site/src/site/wiki/GEP-26.adoc b/site/src/site/wiki/GEP-26.adoc
index 2259686..d04aa77 100644
--- a/site/src/site/wiki/GEP-26.adoc
+++ b/site/src/site/wiki/GEP-26.adoc
@@ -655,7 +655,7 @@ compile such queries.
 * link:GEP-18.html[GEP-18: Integrated Concurrency and Parallel Processing] — home for the deferred asynchronous/streaming data sources
 * https://issues.apache.org/jira/browse/GROOVY-8258[GROOVY-8258: original GINQ proposal and implementation]
 * https://issues.apache.org/jira/browse/GROOVY-11915[GROOVY-11915: groupby...into redesign and first-class group results]
-* https://groovy.apache.org/documentation.html[GINQ user guide — Querying collections in SQL-like style]
+* link:../documentation.html[GINQ user guide — Querying collections in SQL-like style]
 * https://www.jooq.org[JOOQ — plain-SQL DSL and dialect support]
 * https://www.jooq.org/legal/licensing[JOOQ licensing]
 * https://learn.microsoft.com/en-us/dotnet/csharp/linq/[Microsoft LINQ — prior art for one syntax over multiple execution engines]