-
Notifications
You must be signed in to change notification settings - Fork 10
Home
Welcome to the ResearchEquals.com wiki!
We are still figuring out the structure, so in order to prevent making too many pages it's going to start out right here until we figure out what pages are needed.
Codespaces are virtual development environments that can be accessed remotely. All secrets (like database URL, API tokens) are stored remotely as well, which means you need to do less setup work. 😊 Moreover, you can access the interactive development environment from your VSCode locally as well as on the browser, meaning you can work in virtually any way you'd like.
We make codespaces available to our maintainers as a perk. To be able to access codespaces after becoming a maintainer, the following things need to be completed:
- Maintainer is a member of the @libscie organization
- Maintainer is granted access privileges to codespaces
Please note the following quirks while using codespaces:
- Your environment times out after 60 minutes of inactivity
- Codespaces are paid for by the hour - we have a spending limit to prevent unhappy accidents
If any questions come up, feel free to discuss this in the Discord channel. Nothing is set in stone, a lot of things have their reasons (see Chesterton's fence), and things change. So if the spending limit needs to be updated, timeouts need to be adjusted, raise it and we can revisit the thing.
You can find the latest on dependencies involved in this project below. We separate this just like the package.json
, based on main dependencies and developer dependencies (devDependencies
).
Dependency upgrades are managed using dependabot
, so pull requests will come in on a regular basis. Use the lists below as a starting point if something doesn't make sense 😊
🟥 🚧 This list is a work in progress at the moment
Candidate for deletion - unclear what functionality it serves over stripe
Used to send CrossRef XML data in a PUT request.
Used to lint code.
Candidate for moving to devDependencies
.
Used to render readable filesizes in the interface.
This is a candidate for moving to devDependencies potentially.
Needed for @react-pdf-viewer/core
to function.
When upgrading, please ensure the hardcoded links to pdfjs-dist
are update accordingly. For example:
<Worker workerUrl="https://unpkg.com/[email protected]/build/pdf.worker.min.js">
Used to run periodic jobs.
Before being acquired, we ran this through Quirrel.dev itself - now we host our own instance over at Railway.
Used to deal with consent for optional cookies.
Candidate for deletion - unclear what function it fulfills (but deletion needs to be tested).
Used for payment integrations.
Cannot be tested with automated deployments, because this needs Stripe webhooks to be active. Because Heroku deployment apps have a priori not known URLs, we do not have a priori accepted webhooks.
To run a test webhook locally you need to run (install stripe-cli first):
stripe listen --forward-to localhost:3000/api/stripe_webhook
We maintain a staged deployment process for quality assurance. Production
ResearchEquals is deployed on a continuous basis using Flightcontrol.
There are a bunch of paths in the application. Here we provide an easy to navigate overview.
Upgrades are important to maintain an up-to-date codebase. This helps us:
- Fix known security issues
- Introduce improvements as we're downstream from a lot of code
- Reduce risk by continuously checking upgrades
Please verify the following checklists if you're upgrading a dependency as provided by dependabot
.
- Do the release notes indicate relevant breaking changes?
- Does the Heroku deploy complete?
- Does the functionality the dependency provides still function as expected?
- Anything off?
- Do the release notes indicate relevant breaking changes?
- Does the Heroku deploy complete?
- Does the functionality the dependency provides still function as expected?
- Anything off?
This also checks for breaking changes as not everybody follows SemVer correctly, where only major versions can have breaking changes.
- Does the dependabot compatibility score provide reason for concern?
- Does the Heroku deploy complete?
- Does the functionality the dependency provides still function as expected?
- Anything off?