Two exceptions: IsValidPath needs to return success for invalid paths, and QueryAllValidPaths shouldn't need to check the paths it gets from itself.
Change-Id: I4d9d4125d34e8de42f30070aec607f8a902eded7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1598
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Skips over all the monobinary stuff and moves to a separate binary for
nix-daemon.
This also replaces the flag parsing logic with absl::flags. This
causes a behaviour change for --help, which no longer tries to display
a man page but instead shows the actual command-line help.
Note: This binary no longer links to the Boehm GC.
Change-Id: Ib852e994b82f2d56e91262878c10650e656427a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1622
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
The filename this is squatting is too good.
Change-Id: I694132b94d24786df84b6b5a698679bdce818b2e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1621
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Implement AddTextToStore and BuildPaths both on the client and the
server
Refs: #29
Change-Id: I45294c3e1c1a7489e42099d36425b7acc04e0427
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1560
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
This makes it easy to quickly run clang-tidy on tvix without seeing errors from the generated files.
Change-Id: I0e25089c5626aebdb5c016629a68da9ccd26c124
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1556
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Passing a nil issue to this was breaking because you can't get the id of
nil. I am too used to clojure.
Change-Id: Icf76cbb23d902ec59fa97c21b134936fa40eb43e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1593
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Create a project-local .ghci file to define sensible
defaults (e.g. -Wincomplete-patterns).
TODO: Discover more GHC options to put in this file.
I would prefer to keep this at the project root, but because I'm running the
project from the src directory, I need to keep .ghci there.
I got these the wrong way round, fixed them in the patch in my Nix
configuration, and then neglected to fix them in the version for
depot.
Fixes: be98295dc2
Change-Id: Ib7d4e433887f474ae9675e9948ab38f640181095
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1383
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
Only libexpr depends on the garbage collector, specifically only
instantiations of EvalState actually require the GC to be initialised.
Rather than always starting it for the whole program, even if it is
not needed, this change moves the GC initialisation into libexpr,
guarded by absl::call_once.
This should make it possible to run the nix daemon without the garbage
collector interfering, granted that things are correcty separated and
the daemon does not actually invoke the evaluator.
Based on my investigation so far, the daemon logic itself does not
require libexpr to be present at all - so I think it is safe - but the
current monobinary might have some tricks up its sleeve that will
cause problems for us. We can deal with those if they arise.
Relates to https://b.tvl.fyi/issues/30
Change-Id: I61c745f96420c02e089bd3c362ac3ccb117d3073
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1584
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Most settings are left at the defaults.
There are a few more that we want, but even though a stable rustfmt is
perfectly capable of dumping them into a config file, it can not
actually use them.
I expect this will be mostly agreeable, with the exception of
`combine_control_expr`.
Change-Id: I66e3b4705e24dbba902e8847397365fcf31dd403
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1555
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <mail@tazj.in>
Two things:
1. I've never attempted to support this before.
2. It seems surprisingly and perhaps deceptively simpler than what I
expected. I'm unsure what to do once Google's API authenticates the user. I
currently look-up the user's role, trips, etc. using their email address. The
role is stored in the Accounts table alongside username, email, password. I
will speak with the interviewer tomorrow about this.
Bump to alacritty 0.5.0 (which is happening by fetching YANNPP (Yet
Another Nixpkgs Pin) because overriding versions of rust packages is not
very well supported) and update the relevant home-manager version and
pin to get it installed and configured with vi-mode.
Change-Id: I4fd96bd0c0611ce76500c33bf0b2c680ee7f44c3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1583
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Add a rapidcheck test covering roundtrip parse and serialize for Nix
derivations. This covers a bug we discovered in ef54f5d which broke this
roundtrip.
Change-Id: I72d140334b5f24f79e82e34f98609c695dbfbf93
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1582
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
TL;DR: My trips.csv had invalid dates for the endDate column. "2020-15-30" is an
"invalid date" (according to FromField instance for Calendar.Day) bc 15 is not a
valid month (i.e. [1,12]).
@dmjio helped me take a look. When we poked around the SQL, we discovered:
```sql
SELECT endDate FROM TRIPS; -- shows three records
SELECT date(endDate) FROM TRIPS; -- shows two records
```
Copy Example:
To accept the invitation:
POST /accept-invitation username=<username>
password=<password> email=you@domain.tld
secret=8c6b5719-7b1c-471c-bdea-7807b6c0866c
Allow users to accept invitations that we email to them.
TL;DR:
- I learned how to write FromHttpApiData instances, which allows me to
parse/validate data at the edges of my application; this substantially cleans
up my Handler code.
TL;DR:
- Prefer the more precise verbiage, "Accounts", to "Users"
- Add username field to Trip instead of relying on session.username
- Ensure that decodeRole can JD.fail for invalid inputs
- Define print.css with media=print type (note: could've been handled with
@media queries)
- Define printPage port to interop with window.print() JS function
- Support UI.wrapNoPrint to wrap components with a the no-print CSS
TL;DR:
- Ensure Types.TripPK in Types.hs uses Calendar.Day for startDate
- Prefer verbiage "GotCreateTrip" to "CreatedTrip"
- Extend Utils.deleteWithCredentials to accept a body parameter
- Support a delete button in the UI
Problem: When I'm working on a feature, I save my code, and elm-live reloads the
browser. This is usually good, except that the application state is
reinitialized, which usually means that the view changes.
I defined two state configurations, and I expect to define more:
- prod: The initial state for the application
- userHome: The state I'd like to use when developing a feature for the UserHome
page.
Idea: For more ad-hoc configurations, I can store the application state in
LocalStorage and restore it in between page refreshes.
Most of these had already been updated due to how dep constraints are
solved, but it can't hurt to make it explicit.
Change-Id: I1928f5e43a360505e9205f98d007674f6eaf9830
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1553
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
serde_derive is deprecated, the macros have moved behind a
feature-gate in serde itself.
Change-Id: Ib42e7463a81006e23a4fe8a0e48f494610dc8e4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1550
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Removes all but one occurence of `extern crate`, to conform with Rust
2018.
The last one is necessary because Diesel is a giant jungle of
complicated macros re-exported from private crates, and the current
version makes it hard to import those directly instead.
Change-Id: Id14165a456d5c3ce6f7a4e0222c611640113eb11
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1549
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
This is just a `cargo update` call.
Change-Id: I3b780cd76d97bf69b793a4c573eb3b9c1d59f88b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1548
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
It turns out these aren't supposed to be reused after the first request
- reusing it was causing things to blow up.
Change-Id: I935f1ee82ed4e7f26528ae105c8fa2501fa81b97
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1559
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI