Skip to content

Commit bd46e29

Browse files
committed
Split closure build process off to stand alone repo
0 parents  commit bd46e29

9 files changed

+1009
-0
lines changed

.github/workflows/closure.yml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build Google closure library
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
deploy:
7+
description: "Deploy to Maven Central"
8+
required: true
9+
default: false
10+
type: boolean
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Check out
17+
uses: actions/checkout@v3
18+
- name: Set Github identity
19+
run: |
20+
git config --global user.name clojure-build
21+
git config --global user.email "[email protected]"
22+
- name: Set up Java
23+
uses: actions/setup-java@v3
24+
with:
25+
java-version: 8
26+
distribution: 'temurin'
27+
server-id: sonatype-nexus-staging
28+
server-username: MAVEN_USERNAME
29+
server-password: MAVEN_PASSWORD
30+
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
31+
gpg-passphrase: GPG_PASSPHRASE
32+
- name: Release
33+
run: |
34+
cd script/closure-library-release
35+
./closure-library-release.sh
36+
env:
37+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
38+
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
39+
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
40+
HUDSON: ${{ github.event.inputs.deploy }}

README.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# build.closure
2+
3+
ClojureScript depends on the Google Closure JavaScript Libraries,
4+
but Google does not publish those libraries in a Maven repository.
5+
The github action in this repo generates Maven projects for the
6+
Google Closure Library and, optionally, deploys them.
7+
8+
The Google Closure Libraries are divided into two parts: the main
9+
library and third-party extensions. The main library is Apache
10+
licensed; the third-party extensions have a variety of different
11+
licenses. However, code in the main library depends on the
12+
third-party extensions, not the other way around. See CLJS-418 for
13+
details.
14+
15+
To manage this, we build two JARs, google-closure-library and
16+
google-closure-library-third-party, with the former declaring an
17+
explicit dependency on the latter. This permits consumers to exclude
18+
the third-party libraries (and their various licenses) if they know
19+
they don't need them.
20+
21+
To match this structure, we need to alter the deps.js file that the
22+
Google Closure Compiler uses to resolve dependencies. See CLJS-276
23+
for details.
24+
25+
The last release ZIP made by Google was 20130212-95c19e7f0f5f. To
26+
get newer versions, we have to go to the Git repository.
27+
28+

0 commit comments

Comments
 (0)