Skip to content

Commit e8f73c6

Browse files
authored
Merge pull request #641 from reflex-frp/release/0.5.2.0
Release/0.5.2.0
2 parents 5429278 + 76e6134 commit e8f73c6

File tree

14 files changed

+233
-23
lines changed

14 files changed

+233
-23
lines changed

CONTRIBUTING.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,16 @@ Add an entry to the changelog when your PR:
7979

8080
#### In the [Readme](README.md)
8181
The readme is the first place a lot of people look for information about the repository. Update any parts of the readme that are affected by your PR.
82+
83+
## Release Process
84+
The following is the normal process by which `reflex-platform` releases are created.
85+
86+
- New features are merged to the `develop` branch as described above.
87+
- A new release candidate branch is created at some point from develop, named `release/N`: with the version number for *N*.
88+
- Update `ChangeLog.md` with a new version number.
89+
- Regression test the release candidate branch.
90+
- After QA passes:
91+
- Update changelog with version/date.
92+
- Merge `develop` to `master`.
93+
- Tag `master` with version.
94+
- Merge `master` back to `develop`.

ChangeLog.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ This project's release branch is `master`. This log is written from the
44
perspective of the release branch: when changes hit `master`, they are
55
considered released, and the date should reflect that release.
66

7+
## v0.5.2.0
8+
9+
* Fix issues with iOS deploy script caused by the `openssl` command sometimes resolving to OpenSSL and other times to LibreSSL, which output parsed X.509 certificates in slightly different formats. Now it always uses LibreSSL as provided by Nixpkgs.
10+
11+
* Throw an error in `hackGet` when files other than the `git/github.json` and `default.nix` are there. This is a common problem when `git/github.json` exist in an unpacked thunk.
12+
13+
* Add missing dependencies for Android release builds, fixing the problem with full Android release being broken.
14+
15+
* Allow passing signing parameters to the Android deploy script, instead of Nix build scripts, to match iOS deployments. This can help to avoid leaking secrets into the Nix store, important when the Nix store is publicly readable.
16+
17+
* Fix builds of `servant` in GHCJS.
18+
19+
* Bump `reflex` to `0.6.4.1`.
20+
21+
* Bump `reflex-process` to 0.2.1.0 and `reflex-ghci` to 0.1.4.0.
22+
723
## v0.5.1.0 - 2020-01-22
824

925
* Bump `reflex` to `0.6.4`.

android/build.gradle.nix

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,13 @@ android {
5858
}
5959
6060
buildTypes {
61-
${if releaseKey == null then "" else ''
6261
release {
6362
minifyEnabled false
6463
zipAlignEnabled true
64+
${if releaseKey == null then "" else ''
6565
signingConfig signingConfigs.release
66+
''}
6667
}
67-
''
68-
}
6968
debug {
7069
minifyEnabled false
7170
debuggable true

android/default.nix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ in rec {
7272
# keyPassword = "password";
7373
# }
7474

75+
, isRelease ? releaseKey != null
76+
7577
, resources ? defaultResources
7678

7779
, assets ? defaultAssets
@@ -122,6 +124,7 @@ in rec {
122124
displayName
123125
version
124126
releaseKey
127+
isRelease
125128
resources
126129
assets
127130
iconPath

android/defaults/deps.nix

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,4 +967,84 @@
967967
pomSha256 = "fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a";
968968
aarSha256 = null; }
969969

970+
{ artifactId = "lint-gradle";
971+
groupId = "com.android.tools.lint";
972+
version = "26.1.0";
973+
repo = "https://maven.google.com/";
974+
jarSha256 = "1djk56ifhr09f1zp1z9wib8hz2ls42z9iz4qi1v6r3nizvy6m7gc";
975+
pomSha256 = "1zirnsh5aczryhn1qzyc14pmprkgp5bn5w2wi2ds25bcxaadgx82";
976+
aarSha256 = null; }
977+
978+
{ artifactId = "intellij-core";
979+
groupId = "com.android.tools.external.com-intellij";
980+
version = "26.1.0";
981+
repo = "https://maven.google.com/";
982+
jarSha256 = "0qsqs3izdyncy7iw0r71nvmcr5f48cpb8k1j0v2k95pxq7y6ypsf";
983+
pomSha256 = "1hm700339hn8lr2giy2d75z3v8ai7fp55ylqp8g7n0nlmgplxkkm";
984+
aarSha256 = null; }
985+
986+
{ artifactId = "kotlin-compiler";
987+
groupId = "com.android.tools.external.com-intellij";
988+
version = "26.1.0";
989+
repo = "https://maven.google.com/";
990+
jarSha256 = "05xgv51sviqnm6mqhd91psdfgc388gqi1fqkc9x1yrb1ix5ybqly";
991+
pomSha256 = "12w195c2g4qwn5g3sviw3k0n47riymv7afqk096fr4fzzprg4pc1";
992+
aarSha256 = null; }
993+
994+
{ artifactId = "uast";
995+
groupId = "com.android.tools.external.org-jetbrains";
996+
version = "26.1.0";
997+
repo = "https://maven.google.com/";
998+
jarSha256 = "0s9r58kji8448bm6y82wv5hmwq85dx57mbs7ca2pq0xp0yp8n8hs";
999+
pomSha256 = "0h8c3sq55jiyv2avm6h0xck8lng5x53by0d16frdcbdgz41lxa22";
1000+
aarSha256 = null; }
1001+
1002+
{ artifactId = "lint";
1003+
groupId = "com.android.tools.lint";
1004+
version = "26.1.0";
1005+
repo = "https://maven.google.com/";
1006+
jarSha256 = "1wf22x4b2agwqkn41fahfhh65vbf07wx40nqnzhr813cmdcc75k0";
1007+
pomSha256 = "0kiglimp65bf1i8ilq4m2hby60cy5dj2kydrbnxnndd9gcklhq0y";
1008+
aarSha256 = null; }
1009+
1010+
{ artifactId = "lint-checks";
1011+
groupId = "com.android.tools.lint";
1012+
version = "26.1.0";
1013+
repo = "https://maven.google.com/";
1014+
jarSha256 = "1a9afcyyhckm94bp2sf8pxkpv4ww4xhi0ji437f911hbf6ymc5ib";
1015+
pomSha256 = "1miw7fy2njzy7vsk5c92mndn5bs08fmci7216y71jz8zw8kyib0j";
1016+
aarSha256 = null; }
1017+
1018+
{ artifactId = "lint-kotlin";
1019+
groupId = "com.android.tools.lint";
1020+
version = "26.1.0";
1021+
repo = "https://maven.google.com/";
1022+
jarSha256 = "0g6shynra9gakq04lhzpsypdl43gxmgiyflicagl2z1ikncbs9rq";
1023+
pomSha256 = "0ssxy0ymdfy4nvw19hnr930jf5my4h3h7zl1kwn95q301cvasdl3";
1024+
aarSha256 = null; }
1025+
1026+
{ artifactId = "lint-api";
1027+
groupId = "com.android.tools.lint";
1028+
version = "26.1.0";
1029+
repo = "https://maven.google.com/";
1030+
jarSha256 = "1sq2jvjrmwa3mw7q8ynfnjwbskbzxvbfwxk1pf2m2wx58c8npazh";
1031+
pomSha256 = "088vnf5ibfs960i90wx2z5v76w6kjndv4i4swzg99gj4gqnx05cx";
1032+
aarSha256 = null; }
1033+
1034+
{ artifactId = "groovy-all";
1035+
groupId = "org.codehaus.groovy";
1036+
version = "2.4.12";
1037+
repo = "https://jcenter.bintray.com/";
1038+
jarSha256 = "1r4bndr8vappv386pk30fc0gvynyr9v1i0k2ximxa0w9si5symka";
1039+
pomSha256 = "0g6xvsi4zmd26bgbl59ql5638qrfzk9zfr3fnh7ixcqpvb415kd8";
1040+
aarSha256 = null; }
1041+
1042+
{ artifactId = "trove4j";
1043+
groupId = "org.jetbrains.trove4j";
1044+
version = "20160824";
1045+
repo = "https://jcenter.bintray.com/";
1046+
jarSha256 = "1ryvjrjzixf0gwwnv35rn2lgawj5lj3hqs44ll3q6ipbilf8f5qr";
1047+
pomSha256 = "03q95m5jv8lybigkfjb2n2czayfcj59f2iqrpvj0s845hnfmlhaw";
1048+
aarSha256 = null; }
1049+
9701050
]

android/deploy.sh

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#!/usr/bin/env bash
2+
3+
PATH="$PATH:@java@/bin:@adb@/bin:@coreutils@/bin"
4+
5+
APK="$(echo @out@/*.apk)"
6+
7+
sign=
8+
store_file=
9+
key_alias=
10+
store_password=
11+
key_password=
12+
while [ $# -gt 0 ]; do
13+
case "$1" in
14+
--sign)
15+
sign=1
16+
shift
17+
;;
18+
--store-file)
19+
shift
20+
store_file="$1"
21+
shift
22+
;;
23+
--store-password)
24+
shift
25+
store_password="$1"
26+
shift
27+
;;
28+
--key-alias)
29+
shift
30+
key_alias="$1"
31+
shift
32+
;;
33+
--key-password)
34+
shift
35+
key_password="$1"
36+
shift
37+
;;
38+
*)
39+
>&2 echo Unrecognized argument "$1"
40+
exit 1
41+
;;
42+
esac
43+
done
44+
45+
# Sign at deploy time to prevent private information from leaking to
46+
# the Nix store.
47+
if [ -n "$sign" ]; then
48+
if [ -z "$store_file" ] || [ -z "$key_alias" ] || [ -z "$store_password" ] || [ -z "$key_password" ]; then
49+
>&2 echo Please pass arguments for --store-file, --key-alias, --store-password, AND --key-password
50+
exit 1
51+
fi
52+
53+
# Create writable temp file
54+
signed_apk=$(mktemp --suffix=.apk)
55+
cp "$APK" "$signed_apk"
56+
chmod +w "$signed_apk"
57+
APK="$signed_apk"
58+
59+
# This should be the equivalent to what Gradle does with
60+
# ‘signingConfig’. Using
61+
# https://stackoverflow.com/questions/21457538/how-to-use-jarsigner-for-signing-an-apk/21458940
62+
# as a reference.
63+
64+
jarsigner -sigalg SHA1withRSA \
65+
-digestalg SHA1 \
66+
-keystore "$store_file" \
67+
-keypass "$key_password" \
68+
-storepass "$store_password" \
69+
"$APK" \
70+
"$key_alias"
71+
72+
fi
73+
74+
adb install -r "$APK"

android/impl.nix

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ let overrideAndroidCabal = package: overrideCabal package (drv: {
1111
buildCommand = ''
1212
mkdir -p "$out/bin"
1313
cp -r "$src"/* "$out"
14-
cat >"$out/bin/deploy" <<EOF
15-
#!/usr/bin/env bash
16-
$(command -v adb) install -r "$(echo $out/*.apk)"
17-
EOF
14+
substitute ${./deploy.sh} $out/bin/deploy \
15+
--subst-var-by coreutils ${nixpkgs.coreutils} \
16+
--subst-var-by adb ${androidenv.androidPkgs_9_0.platform-tools} \
17+
--subst-var-by java ${nixpkgs.openjdk12} \
18+
--subst-var-by out $out
1819
chmod +x "$out/bin/deploy"
1920
'';
2021
buildInputs = [ androidenv.androidPkgs_9_0.androidsdk ];
@@ -30,9 +31,9 @@ in {
3031
inherit acceptAndroidSdkLicenses;
3132
buildDirectory = "./.";
3233
# Can be "assembleRelease" or "assembleDebug" (to build release or debug) or "assemble" (to build both)
33-
gradleTask = if releaseKey == null
34-
then "assembleDebug"
35-
else "assembleRelease";
34+
gradleTask = if isRelease
35+
then "assembleRelease"
36+
else "assembleDebug";
3637
keyAlias = releaseKey.keyAlias or null;
3738
keyAliasPassword = releaseKey.keyPassword or null;
3839
keyStore = releaseKey.storeFile or null;

haskell-overlays/ghcjs.nix

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ self: super: {
6161
QuickCheck = dontCheck super.QuickCheck;
6262
temporary = dontCheck super.temporary;
6363

64+
# Custom docs don't build with ghcjs
65+
# https://github.com/reflex-frp/reflex-platform/issues/631
66+
servant = haskellLib.overrideCabal super.servant (drv: {
67+
postInstall = "";
68+
});
69+
6470
# These tests never complete
6571
tasty-quickcheck = dontCheck super.tasty-quickcheck;
6672

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"owner": "reflex-frp",
33
"repo": "reflex-ghci",
4-
"branch": "release/0.1.3.1",
5-
"rev": "00e8f518277bdd52785f85bd8e0c3af9bc711aac",
6-
"sha256": "12h87hdjh3lf2a9817bz5n1lqpcw78nidhl7y7f5rkks4vpyj409"
4+
"branch": "release/0.1.4.0",
5+
"rev": "ea476f478da7838e9394261df7ff1f244f52b4a2",
6+
"sha256": "1kmbp4zz61l2hbhp73dxgalnazmv32d98kmbqv27w9i8xgi2jqq8"
77
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"owner": "reflex-frp",
33
"repo": "reflex-process",
4-
"branch": "release/0.2.0.0",
5-
"rev": "9f343cc89c59c55c83bb10e331cf630e00e0bf61",
6-
"sha256": "1qlr816qwzlyjdglx7lmj0nzr8srp07h3hm2izzshi58jil3dkad"
4+
"branch": "release/0.2.1.0",
5+
"rev": "1604a5562b4fc9cbdf7ee37a4c0813b5775d2be9",
6+
"sha256": "158s6m23r45x5sa6bw7x3di3hpb08cvm8cxr25p0xpi6jpbqrx2p"
77
}

0 commit comments

Comments
 (0)