1# Revision history for obelisk
3This project's release branch is `master`. This log is written from the perspective of the release branch: when changes hit `master`, they are considered released, and the date should reflect that release.
7* Fully support HTTP [Range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range) requests on static assets to support Safari. ([#664](https://github.com/obsidiansystems/obelisk/pull/664))
9## v0.6.0.0 - 2020-02-21
11* Fix a bug in `Obelisk.Route.Frontend` where `routeLink`, `routeLinkDynAttr`, and `dynRouteLink` would not behave exactly like `<a href="...">` when run by JavaScript. These functions now scroll to the top of the page when the link is clicked. ([#540](https://github.com/obsidiansystems/obelisk/pull/540))
12* Fix a bug in `ob run`/`ob watch`/`ob repl` where nested Obelisk projects would also be loaded into the session. These are now ignored. ([#652](https://github.com/obsidiansystems/obelisk/pull/652))
13* Improve behavior of `ob run`/`ob watch`/`ob repl` when multiple packages with the same name are encountered. Obelisk now issues a warning and tells you which one it will use. ([#653](https://github.com/obsidiansystems/obelisk/pull/653))
14* Removed `Obelisk.Backend.mkRouteToUrl` since it is easily written in terms of `Obelisk.Route.renderObeliskRoute`:
16 mkRouteToUrl validFullEncoder (k :/ v) = renderObeliskRoute validFullEncoder (FullRoute_Frontend (ObeliskRoute_App k) :/ v)
18* Add `Obelisk.Backend.renderAllJsPath` to expose URL path to `ghcjs/all.js`. ([#545](https://github.com/obsidiansystems/obelisk/pull/545))
19* Add argument to `serveDefaultObeliskApp`, `serveObeliskApp`, and `serveGhcjsApp` to take the path to `all.js` instead of hard-coding it. ([#545](https://github.com/obsidiansystems/obelisk/pull/545))
21## v0.5.0.0 - 2020-02-07
23* Add `Obelisk.Route.(?/)`, a convenience function for constructing routes nested in `Maybe`. ([#457](https://github.com/obsidiansystems/obelisk/pull/457))
24* Add local unpacked packages to the `ob run`, `ob watch`, and `ob repl` sessions. Any `.cabal` or hpack package inside the current obelisk project will be loaded into the session. For `ob run`/`ob watch` this means the session will automatically reload when you save a source file in any of those packages. For `ob repl` it means that `:r` will reload changes to any of those packages. There are some edge cases where this integration is still rough. Report any issues you encounter. ([#489](https://github.com/obsidiansystems/obelisk/pull/489))
25* Add `ob hoogle` command to start a local [Hoogle](https://hoogle.haskell.org/) server for the project. ([#628](https://github.com/obsidiansystems/obelisk/pull/628))
26* `ob thunk pack` will now attempt to automatically detect if the thunk is a private or public repo. To avoid this detection, specify `--private` or `--public` manually. ([#607](https://github.com/obsidiansystems/obelisk/pull/607))
27* Fix a bug in the plain git thunk loader for thunks marked as 'private' when the revision is not in the default branch. ([#648](https://github.com/obsidiansystems/obelisk/pull/648))
28* Improve handling of runtime nix dependencies. This may fix some issues encountered particularly by users on systems other than NixOS.
30## v0.4.0.0 - 2020-01-10
32* Bump reflex-platform which, notably, bumps nixpkgs to 19.09. ([#585](https://github.com/obsidiansystems/obelisk/pull/585))
33* Add new thunk loader for Git repositories that supports `file://` Git remotes and supports private repositories via `builtins.fetchGit` for private repositories (when the `git.json` file specifies `"private": true`). ([#594](https://github.com/obsidiansystems/obelisk/pull/594))
34* Add a new thunk loader for GitHub repositories that uses `builtins.fetchTarball` for public repositories to increase loader performance and uses `fetchFromGitHub` for private repositories (when the `github.json` file specifies `"private": true`). Note that `fetchFromGitHub` requires some Nix configuration for the Nix builder to access the repository. If `ob thunk pack` fails in this case, use `-v` to see Nix's helpful message. ([#594](https://github.com/obsidiansystems/obelisk/pull/594))
35* Add `--public`/`--private` options to `ob thunk pack` to specify if a repository should be treated as a public or private. ([#594](https://github.com/obsidiansystems/obelisk/pull/594))
36* Improve error messaging when a dependency doesn't have the expected `.cabal` or `package.yaml` file. ([#597](https://github.com/obsidiansystems/obelisk/pull/597))
37* Improve the skeleton in small ways. ([#593](https://github.com/obsidiansystems/obelisk/pull/593), [#589](https://github.com/obsidiansystems/obelisk/pull/589))
38* Fix `ob` commands to again support running from any subdirectory of an obelisk project ([#591](https://github.com/obsidiansystems/obelisk/pull/591))
39* Add `reflex-platform-func` argument to Obelisk's `default.nix`. It defaults to it's prior behavior of using the reflex-platform in in `dep`. ([#612](https://github.com/obsidiansystems/obelisk/pull/612))
41## v0.3.0.0 - 2019-12-20
43* Change the structure of Obelisk routes to use a designated
44 `FullRoute` type. This combines frontend and backend routes into one
45 structure. This is a **breaking** change which requires Obelisk apps
46 to take specific migrations. They are:
47 * Rewrite the implementation of `_backend_routeEncoder` in
48 `Backend` to use `mkFullRouteEncoder` instead of
49 `handleEncoder`. Specifically, the backend and frontend cases of
50 the top-level `pathComponentEncoder` become the second and third
51 arguments of `mkFullRouteEncoder` respectively, while the
52 missing route becomes the first argument. An example of how to
53 do this is available in [a reflex-examples
54 commit](https://github.com/reflex-frp/reflex-examples/commits/28f566c3e7dc615578dc74297b7c620c1f13683e).
55 * Replace type constructions of `InL` with `FullRoute_Backend` and
56 `InR` with `FullRoute_Frontend`.
57* Generalised `pathSegmentEncoder`, added `pathFieldEncoder`.
58* Added some `Prism`s to the encoder library for manipulating `DSum`s.
59* Add `ob doc` command, which lists paths to haddock documentation for specified packages.
60* Bump reflex-platform so that obelisk now uses GHC 8.6.5 and the nixos-19.03 nixpkgs set.
61* Add support in `obelisk-route` for single parameters in URL paths.
62* Bump reflex-platform so that obelisk now uses reflex-dom 0.5.2.0.
63* Use a `--pure` nix shell in `ob run` for parity with `ob repl` and more resilience against "works on my machine".
64* Pin usages of `<nixpkgs>` in obelisk thunks, etc. to the nixpkgs used by the project's obelisk impl.
65* Backport ACMEv2 support in obelisk server to regain LetsEncrypt account creation.
66* Enable HTTPS in `ob run`.
67* `ob run` now handles `ghci` errors better, and includes a custom `ghcid`
68 version. As a result, you no longer need to have ghcid installed to
69 use `ob run`, as we provide one for you.
70* `ob` commands now complain less on systems with umasks other than `0022`.
71* Ignore package environment files in `ob run` and `ob repl`.
72* Add `Obelisk.Route.Frontend.routeLinkDynAttr`.
74## v0.2.0.0 - 2019-8-17
76* Configs become ByteStrings.
77* FrontendConfigsT has been changed into ConfigsT and configs are made available via getConfig/getConfigs
78 * The frontend will still only have access to configs that are placed in config/frontend and config/common, while the backend has access to the entire contents of the config directory via `Obelisk.ExecutableConfig.Lookup.getConfigs`.
79* The backend no longer runs in BackendConfigsT.
80* Add tabulation package. See Data.Tabulation for details.
81* Add encoders for `DMap`, `HasFields` (cf. Data.Tabulation), and JSON.
82* Use IP address for nginx proxy pass instead of localhost
84## v0.1.1.0 - 2019-05-17
86* Fix crashes of Android apps on 32-bit ARM devices.
87* Provide a way to indicate acceptance of the Android SDK license by passing `config.android_sdk.accept_license = true;` in the arguments to the import of `.obelisk/impl` in the project's `default.nix`.
88* Add `COMPLETE` pragma to `(:/)`. Using this pattern synonym should no longer generate spurious warnings about non-exhaustive pattern matching.
89* Make asset path hashing strict (see `Obelisk.Asset.Gather`)
90* Add the `ob shell` command to enter a nix shell for an obelisk project
91* Allow skeleton's obelisk to be overridden. This changes the skeleton's default.nix interface: the arguments that it used to take are now part of the new "obelisk" argument.
92* Removed `MonadIO` from `ObeliskWidget` to prevent accidental IO during prerendering. If you need to do IO in a widget it should be on the right hand side of a `prerender`.
93* Significantly changed the interface to the "executable config" packages. `obelisk-executable-config-lookup` is a new internal package which looks up all configs in a platform-specific way. `obelisk-executable-frontend` and `obelisk-executable-backend` provide MTL-style monad classes (`HasFrontendConfigs` and `HasBackendConfigs`) which the frontend and backend, respectively, can use to look up configs. This replaces the old `get` function which ran in `IO`.
94* Add a flag to force thunk packing even if there are unpushed changes in the unpacked thunk.
97## v0.1.0.0 - 2019-03-29
99* Use reflex-dom's `HydrationDomBuilder` to "hydrate" statically rendered DOM served by the Obelisk backend (rather than re-creating DOM and replacing it all).
100* Add `HasCookies` and `CookiesT` to allow `ObeliskWidget`s to access cookies during static and "hydrated" DOM rendering.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list