Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Boot with Boot #329

Closed
wants to merge 5 commits into from
Closed

Build Boot with Boot #329

wants to merge 5 commits into from

Conversation

martinklepsch
Copy link
Member

It's real! 馃帀 馃帄

  • make install can still be used to install everything locally.

  • boot build (--watch) (--install) can be used during development. It will start multiple boot pipelines to build boot libraries when relevant files change. It is required to run make install before doing this*.

    Reason for needing to run make install once: it copies the aether uberjar into boot/base/resources where it will be picked up when building the base uberjar (boot.jar). If the aether uberjar is not present building the base uberjar will fail.

  • make deploy uses the regular push-release provided by bootlaces. I'm not sure how to test this without making a release or creating garbage on clojars, any ideas? Also prevent duplicate tagging of commits during push聽#328 would be needed.

  • there was a :jar-exclusions [#"^clojure/core/"] in all project.cljs but I don't think that had any effect. Leiningen provides :uberjar-exclusions for uberjars where it would make sense but we don't use that.

Limitation: We cannot install the version of boot we're currently running. This "will pull the carpet under the feet" of the running process. In practice this isn't a big problem I think but worth mentioning.

I can squash and delete project.clj and some other cruft when everything seems alright. 馃嵒

martinklepsch added a commit that referenced this pull request Oct 30, 2015
It's real! 馃帀 馃帄. Closes #329

- `make install` can still be used to install everything locally.

- `boot build (--watch) (--install)` can be used during development. It
  will start multiple boot pipelines to build boot libraries when
  relevant files change. It **is required** to run `make install` before
  doing this*.
  Reason for this is that `make install` copies the aether uberjar into
  `boot/base/resources` where it will be picked up when building the
  base uberjar (`boot.jar`). If the aether uberjar is not present
  building the base uberjar will fail.

- `make deploy` uses the regular `push-release` provided by
  bootlaces. I'm not sure how to test this without making a release or
  creating garbage on clojars, any ideas? Also #328 would be needed.

- There was a `:jar-exclusions [#"^clojure/core/"]` in all
  `project.clj`s but I don't think that had any effect. Leiningen
  provides `:uberjar-exclusions` for uberjars where it would make sense
  but we don't use that.

- Limitation: We cannot install the version of boot we're currently
  running. This "will pull the carpet under the feet" of the running
  process. In practice this isn't a big problem I think but worth
  mentioning.

:beers:
@martinklepsch martinklepsch force-pushed the boot-builds-boot branch 3 times, most recently from 3936cf1 to d5d35a4 Compare October 30, 2015 13:29
martinklepsch added a commit that referenced this pull request Oct 30, 2015
It's real! 馃帀 馃帄. Closes #329

- `make install` can still be used to install everything locally.

- `boot build (--watch) (--install)` can be used during development. It
  will start multiple boot pipelines to build boot libraries when
  relevant files change. It **is required** to run `make install` before
  doing this*.
  Reason for this is that `make install` copies the aether uberjar into
  `boot/base/resources` where it will be picked up when building the
  base uberjar (`boot.jar`). If the aether uberjar is not present
  building the base uberjar will fail.

- `make deploy` uses the regular `push-release` provided by
  bootlaces. I'm not sure how to test this without making a release or
  creating garbage on clojars, any ideas? Also #328 would be needed.

- There was a `:jar-exclusions [#"^clojure/core/"]` in all
  `project.clj`s but I don't think that had any effect. Leiningen
  provides `:uberjar-exclusions` for uberjars where it would make sense
  but we don't use that.

- Limitation: We cannot install the version of boot we're currently
  running. This "will pull the carpet under the feet" of the running
  process. In practice this isn't a big problem I think but worth
  mentioning.

:beers:
martinklepsch added a commit that referenced this pull request Nov 4, 2015
It's real! 馃帀 馃帄. Closes #329

- `make install` can still be used to install everything locally.

- `boot build (--watch) (--install)` can be used during development. It
  will start multiple boot pipelines to build boot libraries when
  relevant files change. It **is required** to run `make install` before
  doing this*.
  Reason for this is that `make install` copies the aether uberjar into
  `boot/base/resources` where it will be picked up when building the
  base uberjar (`boot.jar`). If the aether uberjar is not present
  building the base uberjar will fail.

- `make deploy` uses the regular `push-release` provided by
  bootlaces. I'm not sure how to test this without making a release or
  creating garbage on clojars, any ideas? Also #328 would be needed.

- There was a `:jar-exclusions [#"^clojure/core/"]` in all
  `project.clj`s but I don't think that had any effect. Leiningen
  provides `:uberjar-exclusions` for uberjars where it would make sense
  but we don't use that.

- Limitation: We cannot install the version of boot we're currently
  running. This "will pull the carpet under the feet" of the running
  process. In practice this isn't a big problem I think but worth
  mentioning.

:beers:
martinklepsch added a commit that referenced this pull request Nov 8, 2015
It's real! 馃帀 馃帄. Closes #329

- `make install` can still be used to install everything locally.

- `boot build (--watch) (--install)` can be used during development. It
  will start multiple boot pipelines to build boot libraries when
  relevant files change. It **is required** to run `make install` before
  doing this*.
  Reason for this is that `make install` copies the aether uberjar into
  `boot/base/resources` where it will be picked up when building the
  base uberjar (`boot.jar`). If the aether uberjar is not present
  building the base uberjar will fail.

- `make deploy` uses the regular `push-release` provided by
  bootlaces. I'm not sure how to test this without making a release or
  creating garbage on clojars, any ideas? Also #328 would be needed.

- There was a `:jar-exclusions [#"^clojure/core/"]` in all
  `project.clj`s but I don't think that had any effect. Leiningen
  provides `:uberjar-exclusions` for uberjars where it would make sense
  but we don't use that.

- Limitation: We cannot install the version of boot we're currently
  running. This "will pull the carpet under the feet" of the running
  process. In practice this isn't a big problem I think but worth
  mentioning.

:beers:
Deraen and others added 5 commits November 8, 2015 22:26
Copied the implementation from Leiningen.

- Deploy repository options can be set using push task option.
- Deprecate gpg-keyring option
It's real! 馃帀 馃帄. Closes #329

- `make install` can still be used to install everything locally.

- `boot build (--watch) (--install)` can be used during development. It
  will start multiple boot pipelines to build boot libraries when
  relevant files change. It **is required** to run `make install` before
  doing this*.
  Reason for this is that `make install` copies the aether uberjar into
  `boot/base/resources` where it will be picked up when building the
  base uberjar (`boot.jar`). If the aether uberjar is not present
  building the base uberjar will fail.

- `make deploy` uses the regular `push-release` provided by
  bootlaces. I'm not sure how to test this without making a release or
  creating garbage on clojars, any ideas? Also #328 would be needed.

- There was a `:jar-exclusions [#"^clojure/core/"]` in all
  `project.clj`s but I don't think that had any effect. Leiningen
  provides `:uberjar-exclusions` for uberjars where it would make sense
  but we don't use that.

- Limitation: We cannot install the version of boot we're currently
  running. This "will pull the carpet under the feet" of the running
  process. In practice this isn't a big problem I think but worth
  mentioning.

:beers:
martinklepsch added a commit that referenced this pull request Nov 8, 2015
It's real! 馃帀 馃帄. Closes #329

- `make install` can still be used to install everything locally.

- `boot build (--watch) (--install)` can be used during development. It
  will start multiple boot pipelines to build boot libraries when
  relevant files change. It **is required** to run `make install` before
  doing this*.
  Reason for this is that `make install` copies the aether uberjar into
  `boot/base/resources` where it will be picked up when building the
  base uberjar (`boot.jar`). If the aether uberjar is not present
  building the base uberjar will fail.

- `make deploy` uses the regular `push-release` provided by
  bootlaces. I'm not sure how to test this without making a release or
  creating garbage on clojars, any ideas? Also #328 would be needed.

- There was a `:jar-exclusions [#"^clojure/core/"]` in all
  `project.clj`s but I don't think that had any effect. Leiningen
  provides `:uberjar-exclusions` for uberjars where it would make sense
  but we don't use that.

- Limitation: We cannot install the version of boot we're currently
  running. This "will pull the carpet under the feet" of the running
  process. In practice this isn't a big problem I think but worth
  mentioning.

:beers:
@martinklepsch martinklepsch mentioned this pull request Nov 8, 2015
@arichiardi
Copy link
Contributor

Is this patch working still valid? It is really handy when you work on boot stuff...

@martinklepsch
Copy link
Member Author

@arichiardi #340 has all the changes in here and is better (don't exactly remember diff anymore).

Both PRs however have a the problem of not allowing you to build the version of boot you're using to build i. (E.g. Building 2.5.0 with 2.5.0)

Also there was a problem with aot compilation, I'm not sure if this is related to the version issue above. Maybe @micha remembers...

@martinklepsch
Copy link
Member Author

Closing this also so we can use #340 as canonical issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants