For the latest :git/tag
of depstar
and its matching :git/sha
, see the depstar
releases page on GitHub.
-
v2.1.303 199b0a2 -- 2021-09-15
- Fix #102 by converting certain options to strings after alias lookup instead of before (breakage introduced in 2.1.245).
-
v2.1.297 9626e19 -- 2021-09-04
- Support
:mvn/local-repo
directly as an option -- #100. - Clean up build/CI infrastructure, add Gitpod badge, update deps.
- Support
-
v2.1.278 672c142 -- 2021-07-29
- Strip out logging and use
println
instead (this makes it easier to play with other tools) -- #98. - Do not calculate a basis just to get the aliases -- only read and merge the EDNs -- #97.
- Fix bad link in docs #95, and bad links in README.
- Clarify tag/sha versions for
depstar
.
- Strip out logging and use
-
v2.1.267 1a45f79 -- 2021-07-13
- Address #87 by adding a new namespace
hf.depstar.api
containingjar
anduber
functions which are drop-in replacements fortools.build.api
versions, but also accept all of the options thatdepstar
supports to control the behavior in more detail. In addition,hf.depstar/build
has been added as a component step to work with the existingaot
andpom
functions in that namespace. - The documentation has had a major overhaul (including addressing #93 by adding a Terminology and Conventions section!).
- Address #87 by adding a new namespace
-
2.1.253 -- 2021-07-11
- Fix #94 by adding
:extra-deps
from:aliases
to:deps
used forpom.xml
synchronization.
- Fix #94 by adding
-
2.1.250 -- 2021-07-09
- Add
:tools/usage
and instructions for new CLItools
support. - Update
clojure.tools.deps.alpha
and use its newcreate-basis
function, instead of rolling my own.
- Add
-
2.1.245 -- 2021-06-27
- Address #83 by explaining possible
Skipping paths
warning when:sync-pom true
. - Address #82 by reorganizing the internals into three "tasks" so that
hf.depstar/aot
andhf.depstar/pom
are exposed and can be run via the-X
CLI option. In order to make those more useful as standalone tasks, a new:target-dir
option has been added so you can generatepom.xml
and/orclasses
into a specific directory. - Address #81 by batching compilation into a single process, with a
:compile-batch
option to use multiple processes if there are too many namespaces. @stefanroex - Address #80 by adding
:delete-on-exit true
exec arg so users can opt-in to early deletion of temporary files and directories, instead of relying on the O/S to clean them "eventually". - Address #74 by noting CI environment caching "gotchas".
- Update
test-runner
.
- Address #83 by explaining possible
-
2.0.216 -- 2021-04-14
- Address #77 by noting the possible interaction of
user.clj
anddepstar
and suggesting:replace-paths []
. - Fix #76 adjusting AOT selection logic (
:aot true
without:main-class
gives a warning and does not attempt to compile anything).
- Address #77 by noting the possible interaction of
-
2.0.211 -- 2021-03-31
- Fix #75 by adding
:compile-aliases
so the classpath for AOT compilation can be adjusted separately from the classpath for JAR building (controlled by:aliases
). - Update several dependency versions.
- Fix #75 by adding
-
2.0.206 -- 2021-03-17
- Address #73 by updating the documentation and adding a new
:paths-only
option (defaultfalse
). - Fix #71 by allowing keyword-valued exec args to be looked up as aliases in the full basis (including user
deps.edn
).
- Address #73 by updating the documentation and adding a new
-
2.0.193 -- 2021-03-02
- Change coordinates to
com.github.seancorfield/depstar
(although new versions will continue to be deployed toseancorfield/depstar
for a while -- see the Clojars Verified Group Names policy). - Fix #70 by encouraging reverse domain names for group IDs in the README and adding a warning if
:group-id
is specified and does not contain at least one.
. - Fix #69 by adding
:manifest
option to populateMANIFEST.MF
file.
- Change coordinates to
-
2.0.188 -- 2021-02-23
- Fix #68 so
:compile-ns :all
works again (broken in 2.0.187).
- Fix #68 so
-
2.0.187 -- 2021-02-20
- NOTE:
:compile-ns :all
is broken in this release! - Allow
:compile-ns
to accept regex strings to match namespaces (as well as symbols). PR #67 @wandersoncferreira (bartuka) - Fix #66 by switching from "jar" processing to "zip" processing and using
.entries
instead of calling.getNextEntry
(the latter checks CRCs, the former doesn't apparently). - Address #65 by ignoring
.DS_Store
files. - Fix #64 by adding a
:jvm-opts
exec argument for passing JVM options to the AOT compilation subprocess. - Fix #63 by adding a
:compile-fn
exec argument for passing in a customcompile
function.
- NOTE:
-
2.0.171 -- 2021-01-29
- Fix #56 by requiring all of
:group-id
,:artifact-id
, and:version
when:sync-pom true
and nopom.xml
file is present (GAV are now required when you wantdepstar
to create yourpom.xml
file). - Fix #59 by decoupling
pom.xml
file handling fromMANIFEST.MF
handling, which makes it possible to build an uberjar without apom.xml
file. This also allows you to specify:aot true
and:main-class
when building a (thin) JAR file -- but cautions you that it is not recommended! - Fix #60 by attempting to run
git rev-parse HEAD
(in the same directory as thepom.xml
) and adding the output asrevision=
inpom.properties
. - Address #61 by updating the Classpath section of the README (to clarify how the classpath is built and how to use
-Sdeps
).
- Fix #56 by requiring all of
-
2.0.165 -- 2020-12-28
- Escape compile process arguments when shelling out on Windows. Fixes #57 via PR #58 (@borkdude).
-
2.0.161 -- 2020-12-23
- Allow more formats of
<tag>
to be matched against the version, when synchronizing:version
. Fixes #55.
- Allow more formats of
-
2.0.160 -- 2020-12-22
depstar
now behaves like a "tool" rather than a "library" -- you should use:replace-deps
to specify it as a dependency rather than:extra-deps
and it will compute the project basis from the system, user, and projectdeps.edn
files usingclojure.tools.deps.alpha
. By default, it applies no aliases but you can specify an:aliases
exec-arg with a vector of aliases to apply. By default, it behaves like the CLI's-Srepro
option in that the userdeps.edn
file is ignored: specify:repro false
if you want the userdeps.edn
file to be included in the basis. Fixes #47, #48, #49.:compile-ns
exec-arg supports a vector of namespaces to be compiled; this overrides:aot
and:main-class
and allows you to AOT-compile specific namespaces for inclusion in a thin JAR, if needed. Fixes #51.- The group/artifact IDs and the version can now be overridden by exec arguments (
:group-id
,:artifact-id
, and:version
respectively, anddepstar
will update yourpom.xml
file to match). Fixes #53. :sync-pom true
will automatically run the equivalent ofclojure -Spom
. See README for more details. Fixes #54.- The log4j2 plugins cache is now merged correctly. Fixes #50.
- Supported entry points:
hf.depstar/jar
andhf.depstar/uberjar
via-X
,hf.depstar.uberjar/build-jar
via REPL or library usage. The following legacy entry points are all deprecated:hf.depstar.jar/-main
,hf.depstar.jar/run
,hf.depstar.uberjar/-main
,hf.depstar.uberjar/run
, andhf.depstar.uberjar/run*
. - Automated tests now exist, along with CI via GitHub Actions, against JDK versions 8, 11, 14, 15, 16-ea, and 17-ea. Fixes #26.
-
1.1.136 -- 2020-11-16
- Fix #46 by adding
:pom-file
exec argument to specify apom.xml
file in a non-standard location, e.g.,:pom-file '"/tmp/pom.xml"'
-- there is no equivalent:main-opts
flag for this, you have to use the CLI's-X
invocation to supply it.
- Fix #46 by adding
-
1.1.133 -- 2020-11-07
- Fix #45 by providing a REPL-friendly/library entry point as
hf.depstar.uberjar/build-jar
. [this was originallyhf.depstar.uberjar/run*
]
- Fix #45 by providing a REPL-friendly/library entry point as
-
1.1.132 -- 2020-10-19
- Call
shutdown-agents
at the end of processing, to account for AOT of badly-behaved code that has side-effecting top-level forms. - Clarify, in the README, that Clojure CLI version 1.10.1.697 or later is assumed.
- Call
-
1.1.128 -- 2020-10-09
- Fix #44 by changing how legal files are initially copied.
-
1.1.126 -- 2020-10-08
- Fix #43 by changing
pom.properties
to use=
instead of:
. - Fix #42 by changing how
compile
failures are handled. - Fix #41 by including license and copyright notices; concatenates repeated files if they are not exact duplicates.
- Fix #43 by changing
-
1.1.117 -- 2020-09-14
- Fix #40 by making "suppress clash" the default; add
-D
/--debug-clash
option to print the "clashing jar items" warnings. - Address #39 by issuing a warning if conflicting data readers are detected (
.cljc
data readers are not fully supported yet). - Address #38 by warning about multiple JAR file names (explaining which one is selected).
- Streamline the
clojure -X
invocation entry points tohf.depstar/jar
andhf.depstar/uberjar
.
- Fix #40 by making "suppress clash" the default; add
-
1.1.104 -- 2020-08-27
- Fix #37 by adding
-X
/--exclude
to provide one or more regex used to exclude files from the JAR. - Fix #35 by providing
hf.depstar/jar
andhf.depstar/uberjar
as entry points that can be used by the Clojure CLI-X
option (to execute a specific function and pass a map of arguments). [these were originallyhf.depstar/jar
andhf.depstar/uberjar
] - Fix #34 by adding
-P
/--classpath
option to specify a classpath to use (based on PR #36 @borkdude). - Fix #33 by allowing destination JAR filename to appear anywhere on the command-line as well as adding a
-J
/--jar
option for it. - Address #31 by clarifying in the README that
(:gen-class)
is required for AOT.
- Fix #37 by adding
-
1.0.97 -- 2020-08-05
- Fix a bug in the workaround for
Log4j2Plugins.dat
.
- Fix a bug in the workaround for
-
1.0.96 -- 2020-07-29
- Added a workaround for https://issues.apache.org/jira/browse/LOG4J2-954 issue with
Log4j2Plugins.dat
file conflicts.
- Added a workaround for https://issues.apache.org/jira/browse/LOG4J2-954 issue with
-
1.0.94 -- 2020-04-10
- Fix #29 by supporting data reader files with
.cljs
and.cljc
extensions as well as.clj
. - As of 1.1.117, this is the default and there is a new
-D
/--debug-clash
option to display these warnings: Address #28 by adding-S
/--suppress-clash
option to suppress the warning about clashing jar items. - Move to MAJOR.MINOR.COMMITS versioning scheme.
- Fix #29 by supporting data reader files with
-
0.5.2 -- 2020-01-16
- Fix NPE for uberjar when no main class specified #25 @noisesmith.
-
0.5.1 -- 2020-01-02
- Address #24 by transforming the main class (namespace) name.
-
0.5.0 -- 2020-01-02
- Address #23 by managing the AOT compilation folder automatically.
- Users no longer need to create
classes
or add it to the classpath.
-
0.4.2 -- 2019-12-31
- Address #22 by automatically setting
Multi-Release: true
in the uberjar manifest if any multi-release JAR files are consumed.
- Address #22 by automatically setting
-
0.4.1 -- 2019-12-31
- Address #21 by ignoring
.keep
files.
- Address #21 by ignoring
-
0.4.0 -- 2019-12-31
- Address #20 by adding
-C
/--compile
option to AOT-compile the main namespace for an uberjar.
- Address #20 by adding
-
0.3.4 -- 2019-10-18
- Fix #19 by following symlinks when copying directories.
-
0.3.3 -- 2019-09-06
- Fix #18 by using regex instead of
clojure.xml
to extract group ID, artifact ID, and version.
- Fix #18 by using regex instead of
-
0.3.2 -- 2019-08-26
- Fix #16 by adding
:unknown
copy. handler and checking for excluded filenames in it - An unknown file type is now ignored, with a warning printed if it is not an excluded filename.
- Fix #16 by adding
-
0.3.1 -- 2019-08-05
- Address #14 by adding
-m
/--main
option to overrideMain-Class
in the manifest.
- Address #14 by adding
-
0.3.0 -- 2019-07-24
- Fix #13 by using the local
pom.xml
, if present, to generate a manifest (and copypom.xml
into the JAR file).
- Fix #13 by using the local
-
0.2.4 -- 2019-07-05
- Important bug fix for tree-walking bug introduced in 0.2.1!
-
0.2.3 -- 2019-07-01 (do not use)
- Back off Clojure version to 1.7.0 so
depstar
can be used to build JARs for older projects.
- Back off Clojure version to 1.7.0 so
-
0.2.2 -- 2019-06-29 (do not use)
- Fix #11 by adding a
-v
/--verbose
option to display files added to the archive. - Fix #9 properly by creating parent directories prior to move of JAR file.
- Fix #11 by adding a
-
0.2.1 -- 2019-05-08 (do not use)
- Fix #9 by creating parent directories for target JAR file (PR #10 @jarohen).
-
0.2.0 -- 2019-05-07
- Fix #8 by switching to ZipFileSystem and performing a single copy pass (instead of copying to temporary folder tree and then building a zip file).
-
0.1.7 -- 2019-04-24
- Fix #6 by excluding
*.pom
files. - Fix #7 by excluding
module-info.class
files. - Lists excluded files if debugging enabled.
- Fix #6 by excluding
-
0.1.6 -- 2019-03-10
- Fix for JARs containing
data_readers.clj
(do not close input stream!). - Supports
-Ddepstar.debug=true
andDEPSTAR_DEBUG=true
to be more verbose.
- Fix for JARs containing
-
0.1.5 -- 2018-10-24
- Fix for timestamp preservation.
-
0.1.2 -- 2018-10-23
- Initial fork with (incorrect) fix for exception from JARs containing
data_readers.clj
. hf.depstar.jar
namespace added.
- Initial fork with (incorrect) fix for exception from JARs containing