benedekfazekas / mranderson

Dependency inlining and shadowing
Eclipse Public License 1.0
151 stars 14 forks source link

Consider adding some brief docs for MrAnderson developers #69

Open lread opened 2 years ago

lread commented 2 years ago

Currently

While making some changes to MrAnderson, I was curious to know the best way to build and install locally.

I stumbled on the Makefile. And looked at what MrAnderson does for CircleCI.

And figured things out. Maybe.

I think...

Some dev docs would be helpful for those who want to contribute to MrAnderson.

This could either be in a separate dev.md doc or directly in the current README.md.

Also...

Even after looking at the Makefile several times, I'm not sure I understand how to build and install a version of MrAnderson with inlined deps to my local maven repo.

I tweaked the Makefile:

-.PHONY: install inline test integration-test deploy clean
+.PHONY: boostrap-install inline test integration-test install deploy clean

# Note that `install` is a two-step process: given that mranderson depends on itself as a plugin,
# it first needs to be installed without the plugin, for bootstrapping this self dependency.
-install:
+bootstrap-install:
    lein clean
    lein with-profile -user,-dev install
    lein with-profile -user,-dev,+mranderson-plugin install

-.inline: install
+.inline: bootstrap-install
    rm target/*.jar
    rm pom.xml
    lein with-profile -user,-dev,+mranderson-plugin inline-deps :skip-javaclass-repackage true
    touch .inline

inline: .inline

test:
    lein test

integration-test:
    .circleci/integration_test.sh

+install: .inline
+   lein with-profile -user,-dev,+mranderson-profile install
+
deploy: .inline
    lein with-profile -user,-dev,+mranderson-profile deploy clojars

clean:
    lein clean
    rm -rf .inline

This seemed to work, but if it does not make sense please let me know so I can better understand. If it does make sense I can include the change in the PR.

Next Steps

If adding some brief developer docs is something that interests you too, I'll follow up with a PR.

lread commented 1 year ago

So the Makefile change seems to make sense. The tweak allows me to easily test locally with MrAnderson with its own deps inlined. Which is handy for things like cljdoc previewing.