on master help sign in
Merge branch 'develop' into fix-no-implicit-prelude-warnings
commit46d7a09d0d8a49a7612d85008120dacdc8233a3a authorAli Abrar <aliabrar@gmail.com> dateWed 11 Nov 2020, 09:14 (6 years ago) parent1bd7d8c97410a8
10 files changed+50−17
ChangeLog.md+13 README.md+1−1 default.nix+7−2 dep/reflex-platform/github.json+3−4 haskell-overlays/misc-deps.nix+8−2 lib/command/obelisk-command.cabal+1−1 lib/executable-config/lookup/src/Obelisk/Configs.hs+2 lib/route/src/Obelisk/Route.hs+3−2 lib/run/src/Obelisk/Run.hs+3−3 skeleton/default.nix+9−2
ChangeLog.md+13
@@ -4,6 +4,19 @@ This project's release branch is `master`. This log is written from the perspect
44
55## Unreleased
66
7+* Pinned version bumps:
8+ * reflex-platform [0.6.1.0](https://github.com/reflex-frp/reflex-platform/releases/tag/v0.6.1.0)
9+ * hnix 0.8.0
10+
11+## v0.9.0.1
12+
13+* ([#810](https://github.com/obsidiansystems/obelisk/pull/810)) Fix loading of `all.js` in fully compiled web apps.
14+
15+## v0.9.0.0
16+
17+* **(Breaking change)** Backport nixpkgs upgrades to ACME/Let's Encrypt handling so that HTTPS deployments continue to work flawlessly. If your deployment is having trouble renewing [Let's Encrypt](https://letsencrypt.org/) certificates, upgrade to this version.
18+ * **IMPORTANT:** In order to use [Let's Encrypt](https://letsencrypt.org/) you must now accept their [terms of service](https://letsencrypt.org/repository/). To do that, add `terms.security.acme.acceptTerms = true;` to the `import ./.obelisk/impl {` section in your `default.nix`. The new skeleton application may serve as an [example](https://github.com/obsidiansystems/obelisk/blob/4759342ab3570888c027d4c58cb5694cb832d624/skeleton/default.nix#L13).
19+* Update reflex-platform dependency to v0.6.0.0
720* ([#715](https://github.com/obsidiansystems/obelisk/pull/715)) In `Obelisk.Route` deprecate `isoEncoder` and `prismEncoder` in favor of more precisely named `viewEncoder` and `reviewEncoder` (respectively) and improve documentation regarding contravariance of `reviewEncoder`.
821* ([#739](https://github.com/obsidiansystems/obelisk/pull/739)) Improve `ob shell` by allowing commands to be passed verbatim after a `--` argument. For example, `ob shell 'run command'` can now be written `ob shell -- run command`.
922* ([#735](https://github.com/obsidiansystems/obelisk/pull/735)) Fix regression causing custom `Prelude`s to break `ob run`/`ob watch`/`ob repl`.
README.md+1−1
@@ -114,7 +114,7 @@ First create a new EC2 instance:
1141141. Launch a NixOS 19.09 EC2 instance (we recommend [this AMI](https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:ami=ami-00a8eeaf232a74f84))
1151151. In the instance configuration wizard ensure that your instance has at least 1GB RAM and 10GB disk space.
1161161. When prompted save your AWS private key (`~/myaws.pem`) somewhere safe. We'll need it later during deployment.
117−1. Go to "Security Groups", select your instance's security group and under "Inbound" tab add a new rule for HTTP port 80 and 443.
117+1. Go to "Security Groups", select your instance's security group and under "Inbound" tab add a new rule for HTTP port 80 and HTTPS port 443.
118118
119119At this stage your instance should be booting and become accessible shortly. Note down the hostname of your EC2 instance.
120120
default.nix+7−2
@@ -2,6 +2,9 @@
22, profiling ? false
33, iosSdkVersion ? "10.2"
44, config ? {}
5+, terms ? { # Accepted terms, conditions, and licenses
6+ security.acme.acceptTerms = false;
7+ }
58, reflex-platform-func ? import ./dep/reflex-platform
69}:
710let
@@ -114,7 +117,7 @@ in rec {
114117 "${routeHost}".email = adminEmail;
115118 } else {};
116119
117− security.acme.${if enableHttps then "acceptTerms" else null} = true;
120+ security.acme.${if enableHttps && (terms.security.acme.acceptTerms or false) then "acceptTerms" else null} = true;
118121 };
119122
120123 mkObeliskApp =
@@ -183,7 +186,9 @@ in rec {
183186 set -eux
184187 ln -s '${if profiling then backend else haskellLib.justStaticExecutables backend}'/bin/* $out/
185188 ln -s '${mkAssets assets}' $out/static.assets
186− ln -s '${mkAssets (compressedJs frontend optimizationLevel)}'/* $out
189+ for d in '${mkAssets (compressedJs frontend optimizationLevel)}'/*/; do
190+ ln -s "$d" "$out"/"$(basename "$d").assets"
191+ done
187192 echo ${version} > $out/version
188193 '';
189194
dep/reflex-platform/github.json+3−4
@@ -1,8 +1,7 @@
11{
22 "owner": "reflex-frp",
33 "repo": "reflex-platform",
4− "branch": "develop",
5− "private": false,
6− "rev": "c21ec7036c8351185cd2feef9ce577b6a61c4f22",
7− "sha256": "0m4sdpz6qvngralpyprrbvsyi2zmfh2l3q5vhihwfp3842blvbfg"
4+ "branch": "rc/0.6.1.0",
5+ "rev": "673c2622b288504bb57006e6b440d5240ce1865c",
6+ "sha256": "0ny8dah1s3amvs1h5k8j1zwzmh07a12af833b6g32cxf0qlj3v0l"
87}
haskell-overlays/misc-deps.nix+8−2
@@ -9,8 +9,14 @@ let
99in
1010
1111{
12− hnix = haskellLib.dontCheck (haskellLib.doJailbreak (self.callCabal2nix "hnix" (hackGet ../dep/hnix) {}));
13− hnix-store-core = self.callHackage "hnix-store-core" "0.1.0.0" {};
12+ regex-base = self.callHackage "regex-base" "0.94.0.0" {};
13+ regex-posix = self.callHackage "regex-posix" "0.96.0.0" {};
14+ regex-tdfa = self.callHackage "regex-tdfa" "1.3.1.0" {};
15+ test-framework = haskellLib.dontCheck (self.callHackage "test-framework" "0.8.2.0" {});
16+ hnix = haskellLib.dontCheck (self.callHackage "hnix" "0.8.0" {});
17+ hnix-store-core = self.callHackage "hnix-store-core" "0.2.0.0" {};
18+
19+ aeson-gadt-th = self.callHackage "aeson-gadt-th" "0.2.4" {};
1420
1521 ghcid = self.callCabal2nix "ghcid" (hackGet ../dep/ghcid) {};
1622 # Exports more internals
lib/command/obelisk-command.cabal+1−1
@@ -1,5 +1,5 @@
11name: obelisk-command
2−version: 0.8.0.0
2+version: 0.9.0.1
33cabal-version: >= 1.8
44build-type: Simple
55
lib/executable-config/lookup/src/Obelisk/Configs.hs+2
@@ -22,6 +22,7 @@ import Control.Applicative (Alternative)
2222import Control.Monad (MonadPlus)
2323import Control.Monad.Base (MonadBase)
2424import Control.Monad.Catch (MonadThrow)
25+import Control.Monad.Fail (MonadFail)
2526import Control.Monad.Fix (MonadFix)
2627import Control.Monad.IO.Class (MonadIO)
2728import Control.Monad.Morph (MFunctor)
@@ -87,6 +88,7 @@ newtype ConfigsT m a = ConfigsT { unConfigsT :: ReaderT (Map Text ByteString) m
8788 , Monad
8889 , MonadPlus
8990 , Alternative
91+ , MonadFail
9092 , MonadFix
9193 , MonadThrow
9294 , MonadIO
lib/route/src/Obelisk/Route.hs+3−2
@@ -170,6 +170,7 @@ import Data.Text (Text)
170170import qualified Data.Text as T
171171import qualified Data.Text.Encoding as T
172172import Data.Text.Lens (IsText, packed, unpacked)
173+import Data.Type.Equality
173174import Data.Universe
174175import Data.Universe.Some
175176import Network.HTTP.Types.URI
@@ -1038,8 +1039,8 @@ someSumEncoder = Encoder $ pure $ EncoderImpl
10381039
10391040data Void1 :: * -> * where {}
10401041
1041−instance Universe (Some Void1) where
1042− universe = []
1042+instance UniverseSome Void1 where
1043+ universeSome = []
10431044
10441045void1Encoder :: (Applicative check, MonadError Text parse) => Encoder check parse (Some Void1) a
10451046void1Encoder = Encoder $ pure $ EncoderImpl
lib/run/src/Obelisk/Run.hs+3−3
@@ -144,9 +144,9 @@ runWidget conf configs frontend validFullEncoder = do
144144
145145 cert <- X509.newX509 >>= X509Request.makeX509FromReq certRequest
146146 _ <- X509.setPublicKey cert privateKey
147− now <- getCurrentTime
148− _ <- X509.setNotBefore cert $ addUTCTime (-1) now
149− _ <- X509.setNotAfter cert $ addUTCTime (365 * 24 * 60 * 60) now
147+ timenow <- getCurrentTime
148+ _ <- X509.setNotBefore cert $ addUTCTime (-1) timenow
149+ _ <- X509.setNotAfter cert $ addUTCTime (365 * 24 * 60 * 60) timenow
150150 _ <- X509.signX509 cert privateKey Nothing
151151
152152 certByteString <- BSUTF8.fromString <$> PEM.writeX509 cert
skeleton/default.nix+9−2
@@ -1,10 +1,17 @@
1−{ obelisk ? import ./.obelisk/impl {
2− system = builtins.currentSystem;
1+{ system ? builtins.currentSystem
2+, obelisk ? import ./.obelisk/impl {
3+ inherit system;
34 iosSdkVersion = "10.2";
5+
46 # You must accept the Android Software Development Kit License Agreement at
57 # https://developer.android.com/studio/terms in order to build Android apps.
68 # Uncomment and set this to `true` to indicate your acceptance:
79 # config.android_sdk.accept_license = false;
10+
11+ # In order to use Let's Encrypt for HTTPS deployments you must accept
12+ # their terms of service at https://letsencrypt.org/repository/.
13+ # Uncomment and set this to `true` to indicate your acceptance:
14+ # terms.security.acme.acceptTerms = false;
815 }
916}:
1017with obelisk;