Cleodora Forecasting
Software to track personal forecasts/predictions and systematically improve at making them.
Examples of such forecasts:
- Will "The Fabelmans" win "Best Picture" at the Oscars 2023?
- Will I get an A in my upcoming exam?
- Will there be nice weather on my birthday?
- Will the number of contributors for "Cleodora" be more than 3 at the end of 2022?
All information, including development guidelines, requirements and roadmap can be found on the website https://cleodora.org .
Dev Setup
- Install Go 1.18 or higher
- Install npm v16.18.0 or higher
git clone https://github.com/cleodora-forecasting/cleodora
cd cleodora
go get
cd frontend
npm install
Gitpod
A simple dev environment, directly in the browser.
Run
Backend (GraphQL API)
go run .
- GraphQL playground: http://localhost:8080/playground/
- GraphQL API: http://localhost:8080/query
Frontend (React app)
cd frontend
npm start
The backend should also be running, otherwise you will get an error.
Backend with statically embedded frontend
cd frontend
npm run build
cd ..
go run -tags frontend .
Build
make build
You can find the binary containing everything under build/cleodora
. Run it and access http://localhost:8080 in the browser.
GraphQL playground (GraphiQL)
Start frontend and backend as described above.
Open http://localhost:8080/playground/ in a browser and create some forecasts:
mutation createForecast {
createForecast(
input: {
summary: "Will 'The Fabelmans' win 'Best Picture'?",
description: "The new Steven Spielberg movie. Academy Award for Best Picture 2023.",
resolves: "2023-03-01T12:00:00+01:00",
}
) {
id
summary
description
created
resolves
closes
resolution
}
}
Open http://localhost:3000 in a browser and see the list of forecasts.
Tests
Setup
sudo apt install firefox-geckodriver
Execution
cd e2e_tests
npm install
node_modules/.bin/mocha --timeout 15000 frontPageTest.spec.js
Support multiple choice forecasts
This is currently only planned for after the release 1.0, but they are in fact really useful. For example to forecast on PredictionBook what an exam result will be (out of 5 possible outcomes) I need to create five different forecasts and need to manually ensure that the total probability among them adds up to 100.
It would be much nicer to do it like this:
What grade will I get in my exam?
If later adjusting the probability for "Grade B" all the other probabilities could either shift automatically or before being able to save the user would need to ensure that everything adds up to 100.
Choose: GraphQL client library
Options listed here https://graphql.org/code/#go
Bump web-vitals from 2.1.4 to 3.0.4 in /frontend
Bumps web-vitals from 2.1.4 to 3.0.4.
Changelog
Sourced from web-vitals's changelog.
Commits
7f0ed0b
Release v3.0.4431eda6
Update CHANGELOGc41fed3
Merge pull request #270 from tunetheweb/prerender-LCP-FCPc334fb7
Merge pull request #269 from tunetheweb/fix-metric-specific-links24c309e
Clamp LCP and FCP to 0 for prerendered pagesd63c605
Fix metrics-specific linksdfbd06e
Release v3.0.3c8ed235
Update CHANGELOG201b766
Merge pull request #265 from GoogleChrome/attribution-fixes7a598d1
Ensure attribution object is always presentDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bump @types/node from 18.11.13 to 18.11.14 in /frontend
Bumps @types/node from 18.11.13 to 18.11.14.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Client: Consider whether to apply verb-noun or noun-verb paradigm
i.e.
cleoc add forecast
orcleoc forecast add
. Right now it's the former.https://github.com/fnproject/cli/issues/216 https://github.com/fnproject/cli/wiki/CLI-Analysis especially nice the idea of also allowing help on 'nouns' to see which verbs could apply.
counter: https://simblob.blogspot.com/2019/10/verb-noun-vs-noun-verb.html https://www.usabilityfirst.com/glossary/noun-verb-paradigm/index.html https://nixos.org/manual/nix/stable/contributing/cli-guideline.html
Bump @testing-library/user-event from 13.5.0 to 14.4.3 in /frontend
Bumps @testing-library/user-event from 13.5.0 to 14.4.3.
Release notes
Sourced from
@testing-library/user-event
's releases.... (truncated)
Commits
1aa2027
fix: remove circular dependencies (#1027)5bed8c6
fix(build): addtypes
field inexports
(#1029)b6bbbd6
chore: remove unnecessary CI steps (#1030)ab1a6c4
docs: add HillLiu as a contributor for bug (#1023)7839e29
fix(build): addexports
field (#1022)ff121ff
docs: add kksy as a contributor for doc (#1020)ea50231
docs: add sesam as a contributor for bug (#1017)4291cb8
fix(build): transpile to es2019 syntax (#1016)47f2036
docs: add DGollings as a contributor for bug (#1013)7b1aeea
docs: add alkstal as a contributor for bug (#1012)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bump selenium-webdriver from 4.5.0 to 4.6.0 in /e2e_tests
Bumps selenium-webdriver from 4.5.0 to 4.6.0.
Release notes
Sourced from selenium-webdriver's releases.
... (truncated)
Commits
79f1c02
Bumping versions to 4.6.0 and updating changelogs4ce2649
[dotnet] add Selenium Manager support for Unix7be7e2e
[dotnet] fix the framework conditionals for Selenium Manager73f9351
Running./go copyright:update
06e639e
Including Rust in./go copyright:update
taskb0db1ee
[dotnet] add Selenium Manager support for linux & macba1821d
Fix platform list in #scroll_by guard7bb31fc
mark Selenium Manager implementations as beta718f4f2
[rb] update guards for tests on Windows878ce7e
Ensure all ruby_test targets have access to :remoteDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bump @graphql-codegen/client-preset from 1.2.3 to 1.2.4 in /frontend
Bumps @graphql-codegen/client-preset from 1.2.3 to 1.2.4.
Release notes
Sourced from
@graphql-codegen/client-preset
's releases.Changelog
Sourced from
@graphql-codegen/client-preset
's changelog.Commits
8248c50
chore(release): update monorepo packages versions (#8717)ed87c78
fix(deps): update dependency@graphql-tools/utils
to v9 (#8771)cbca5a7
add typescriptavoidOptionals
to forwarded configs (#8752)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bump @graphql-codegen/cli from 2.16.1 to 2.16.2 in /frontend
Bumps @graphql-codegen/cli from 2.16.1 to 2.16.2.
Changelog
Sourced from
@graphql-codegen/cli
's changelog.Commits
8248c50
chore(release): update monorepo packages versions (#8717)a9c5414
Updated@graphql-tools/prisma-loader
package (#8765)ed87c78
fix(deps): update dependency@graphql-tools/utils
to v9 (#8771)e6ff224
fix(deps): update dependency cosmiconfig-typescript-loader to v4.3.0 (#8729)b1512a5
fix(deps): update dependency cosmiconfig-typescript-loader to v4.2.0 (#8715)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bump github.com/rs/cors from 1.8.2 to 1.8.3
Bumps github.com/rs/cors from 1.8.2 to 1.8.3.
Commits
fcebdb4
Add "Access-Control-Request-Private-Network" to Vary (#132)da52b07
add tests for Cors.areHeadersAllowed() (#128)a4a5ce8
support Private Network Access spec (#127)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Bump github.com/goreleaser/goreleaser from 1.13.1 to 1.14.0
Bumps github.com/goreleaser/goreleaser from 1.13.1 to 1.14.0.
Release notes
Sourced from github.com/goreleaser/goreleaser's releases.
... (truncated)
Commits
33528d7
fix: remove warningee9816b
docs: schema updatefccdea0
chore: docs auto-updatea209757
feat: better archives relative paths (#3656)46fdb55
fix: multiple files with same name warning (#3660)8985606
chore(deps): Bump actions/cache from 3.2.0 to 3.2.1 (#3658)6c9adcb
chore(deps): bump actions/cache from 3.0.11 to 3.2.0 (#3657)21648d1
fix: init with extra quote196fa6c
feat(deps): bump github.com/slack-go/slack from 0.12.0 to 0.12.1 (#3654)494ba29
fix: lint issueDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)CI: If auto-generated code is out of sync or linting can be auto-fixed, automatically fix it
Some code is generated and can be out of sync if
make generate
was not executed. There are some linting issues that can be fixed automatically. In both those cases it's more developer friendly to fix it automatically and not just display an error.https://github.com/marketplace/actions/create-or-update-pull-request
If it happens on main then open a new PR to solve it. If it happens inside a PR then automatically append a commit to that PR fixing the issue.
Dependabot: Inefficient Regular Expression Complexity in nth-check
Dependabot cannot update nth-check to a non-vulnerable version
The latest possible version that can be installed is 1.0.2 because of the following conflicting dependencies:
[email protected] requires [email protected]^1.0.2 via a transitive dependency on [email protected] No patched version available for nth-check
The earliest fixed version is 2.0.1.
It might be a false positive: https://stackoverflow.com/questions/71282206/github-dependabot-alert-inefficient-regular-expression-complexity-in-nth-check
CI: Verify generated code is up to date
Currently three places are using generated code:
go run github.com/99designs/gqlgen generate
go run github.com/Khan/genqlient
graphql-codegen
It's necessary to ensure that they don't get out of sync. They all depend on
cleosrv/graph/schema.graphqls
, which should therefore be moved to the top level of the repository anyway.