Long-Term Funding, Update #6
In my previous Long-Term Funding update I said I would review and update of the "cookbooks" section and make another pass of "TBD" items in the "language" section.
clojure-doc.org
I reviewed and updated the cookbooks for Files and Directories, Mathematics, Middleware, Parsing XML in Clojure, and Strings, bringing them all up to Clojure 1.11 (and testing the examples -- and fixing the broken ones).
For the Mathematics cookbook, that
meant rewriting the content that previously used Java interop and/or
math.numeric-tower to use
the new-in-1.11 clojure.math
namespace.
Several cookbooks got minor updates
to take advantage of functions in clojure.core
and clojure.string
that
have been added since Clojure 1.4, when most of the original material on
clojure-doc
was written.
I also went through all the Java documentation links and updated those to point to the Java 17 versions (they were mostly pointing at Java 7 previously!). These will get updated again once use of JDK 21 has become more widespread.
I've been slowly working my way through the "TBD" items in the various Language guides, including the Glossary, although some of them really need input from community members who have specialist knowledge in those areas. In particular, the Concurrency and Parallelism and Polymorphism guides still have a number of "TBD" items that I don't feel qualified to write! Volunteers welcome!
Thank you to @adham-omran for a PR that
added the Date and Time cookbook
and to @samhedin for a PR that added
a section about adding Java code to Clojure projects to the tools.build
cookbook.
Finally, I made a logo and a favicon for the site with my very limited artistic "talents"!
To wrap up the year of work on clojure-doc.org
, I consider the Clojurists
Together funding to have been a massive success. The site has been completely
overhauled at this point, bringing it up to date with Clojure 1.11 and
removing all the outdated (and now-duplicated) material that was originally
missing from the official Clojure documentation. In addition, by raising the
profile of clojure-doc.org
in the community, contributions have increased
with two new cookbooks added via Pull Requests and several other sections of
the site either getting PRs or being updated by me in response to extensive
feedback from the community (mostly on Slack).
Keeping the site updated now feels like a tractable problem and I'm hoping to find time in 2024 and beyond to add more content to the site, especially when Clojure 1.12 is released and there are a lot of enhancements to Java interop!
deps-new
deps-new
0.6.0 was released
with several
documentation updates, a new :src-dirs
option to make it
easier to use deps-new
as a library and use templates from the local
file system, and a new :post-process-fn
to make it possible to modify
the generated project programmatically.
Expectations
No new release yet but several documentation updates for
the clojure.test
-compatible version of
Expectations.
HoneySQL
HoneySQL 2.5.1103 was released with smarter quoting of entities, smarter handling of metadata in formatting, and new options to provide more control over both of those features.
next.jdbc
next.jdbc
1.3.909
brings improved compatibility with clojure.java.jdbc
for
insert-multi!
and adds a :schema-opts
option to provide more control over
schema conventions for datafy
/nav
. There have also been several
documentation updates, in particular around how to use next.jdbc/plan
and
next.jdbc.sql/find-by-keys
. The build.clj
has been updated to use the
:pom-data
option introduced in tools.build
0.9.6, as a better example
for the community.
clj-watson
clj-watson
is a great tool
for checking your dependencies for known security vulnerabilities. It's a
wrapper around
OWASP Dependency Check
and NIST is requiring users of its NVD (National Vulnerability Database)
to switch from using data feed downloads to a new API that requires a free key for
access. The DependencyCheck library that clj-watson
uses has been updated
to use the new API, but it isn't backward compatible so clj-watson
needed
changes to use the new version of the library -- and to provide an easier
way for users to specify their own NVD API key.
Although the clj-watson
maintainer has moved on from Clojure,
they've been receptive to my Pull Requests to update the documentation,
update the library dependencies, add a new, optional properties file that
users can provide to override defaults, as well as a new command line option
to specify that file, if you don't want it on the classpath, and to update
the DependencyCheck library and provide documentation on how to obtain an
NVD API key and how to use it with clj-watson
.
A v5.0.0 release of clj-watson
has been made, with all these changes, and
is available as a git dependency. A Pull Request is pending with the README
updates.
org.clojure/java.data
Finally, the java.data
Contrib
library has a new release, 1.1.103, which removes the dependency on
org.clojure/tools.logging
-- which in turn means that next.jdbc
no longer
depends on tools.logging
, reducing the chance of conflicts for users of
either library.