Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Rails, Ruby, bootstrap and fix some issues #4

Merged
merged 43 commits into from
Feb 20, 2025
Merged
Changes from 1 commit
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
5203ffb
upgrade to Rails 6.1
fosterfarrell9 Jan 30, 2025
2b40c99
Run rails app:update
fosterfarrell9 Jan 30, 2025
6e84850
Use 6.1 defaults and add token
fosterfarrell9 Jan 30, 2025
6ea90b9
Remove old config files
fosterfarrell9 Jan 30, 2025
52915bc
Remove capybara gem
fosterfarrell9 Jan 30, 2025
bd5d99f
Upgrade to Rails 7.0
fosterfarrell9 Jan 30, 2025
985c386
Update and remove some gems
fosterfarrell9 Jan 30, 2025
dc9bb16
Upgrade to Ruby 3.0.7
fosterfarrell9 Jan 30, 2025
9abe816
Bump sqlite3 gem down
fosterfarrell9 Jan 30, 2025
16df200
Allow Web Console access for localhost
fosterfarrell9 Jan 30, 2025
10296c6
Compile picosat from scratch using proof trace option
fosterfarrell9 Feb 1, 2025
1ae4774
Migrate to Ruby 3.1.6
fosterfarrell9 Feb 1, 2025
3ad5714
Update to Rails 7.1
fosterfarrell9 Feb 1, 2025
b3ad357
Upgrade to Ruby 3.2
fosterfarrell9 Feb 1, 2025
f97c401
Upgrade to Ruby 3.3.7
fosterfarrell9 Feb 1, 2025
756f740
Upgrade to Rails 7.2
fosterfarrell9 Feb 1, 2025
fd8be03
Correct Ruby version in Dockerfile
fosterfarrell9 Feb 1, 2025
eeb2023
Update node.js
fosterfarrell9 Feb 1, 2025
c1c69ac
Remove picosat gem
fosterfarrell9 Feb 2, 2025
ceafe6f
Put example user creation into development seed file
fosterfarrell9 Feb 2, 2025
38513a5
Add Redis and fix cache population
fosterfarrell9 Feb 2, 2025
6620edf
Remove unncecessary rquire
fosterfarrell9 Feb 2, 2025
dc0c44b
Use different redis database in order to avoid clash with mampf
fosterfarrell9 Feb 2, 2025
be14302
Mount local directory
fosterfarrell9 Feb 3, 2025
d15c8f3
Adapt Dockerfile to WSL setting
fosterfarrell9 Feb 3, 2025
c2d654f
Update bootstrap gem to v5
fosterfarrell9 Feb 3, 2025
e163a58
Migrate to bootstrap 5
fosterfarrell9 Feb 3, 2025
0af462a
Migrate to postgresql in development
fosterfarrell9 Feb 4, 2025
ecc6ae6
Change path to picosat tar
fosterfarrell9 Feb 4, 2025
84f6a03
Add Dockerfile for production
fosterfarrell9 Feb 4, 2025
c26366c
Add docker-compose file for production
fosterfarrell9 Feb 4, 2025
c137089
Change path to picosat tar
fosterfarrell9 Feb 4, 2025
9349a73
Remove sqlite3 dependency
fosterfarrell9 Feb 4, 2025
127ff8e
Distinct container name for db
fosterfarrell9 Feb 4, 2025
7c82d35
Use distinct container name for redis
fosterfarrell9 Feb 4, 2025
a2ec845
Update README
fosterfarrell9 Feb 11, 2025
c8d3b16
Reformulate README
fosterfarrell9 Feb 11, 2025
4d6fea4
Update README
fosterfarrell9 Feb 16, 2025
dcbbeee
Replace reference to action_cable.js by actioncable.js
fosterfarrell9 Feb 16, 2025
2d577fa
Remove postgres client from production Dockerfile
fosterfarrell9 Feb 16, 2025
1f0a3ce
Fix grammar
fosterfarrell9 Feb 16, 2025
0b732be
Remove obsolete stuff from Dockerfile
fosterfarrell9 Feb 20, 2025
1c4ecf7
Add comment to Dockerfile
fosterfarrell9 Feb 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ questions:
that isn't projective?
- Is there a ring that is a principal ideal domain, but not a unique
factorization domain?

The first question has a simple enough answer with the ring of integers of
__Q__(√-19). The second also has an example as the answer, but it is worthwhile
to know that every quasi-projective proper morphism X→Y is projective if Y is
$\mathbb{Q}(\sqrt{-19})$. The second also has an example as the answer, but it is worthwhile
to know that every quasi-projective proper morphism $X\to Y$ is projective if $Y$ is
qcqs. The third question of course has no example at all, as every principal
ideal domain is a UFD.

Expand All @@ -30,31 +30,31 @@ examples* and *abstract implications*, in the nicest possible manner.

## Local Installation

Local installation is easiest via docker. Just go to the `docker/development` folder und run
Local installation is easiest via docker. Just run

```sh
docker-compose up
cd docker/development
docker compose up
```
This should set up a container called `erdbeere`
that you can reach at `http://localhost:3005`.
If you do this for the first time, the database will still empty. In that case you can enter the container and
seed the database:
that you can reach at `http://localhost:3005`.
If you do this for the first time, the database will still empty. In that case you can enter the container and seed the database:

```sh
docker exec -it erdbeere bash
rails db:migrate
rails db:seed
rails db:seed
```
This will generate a user with email `[email protected]` and password `dockermampf`.
On slower machines, seeding might take a while. If it takes too long for your taste, just reduce the number of examples seeded, e.g. by making the array over which appears in line 13 of `db/seeds.db` smaller. If you do not want to use the seed file and still set up a user, just run

On slower machines, this might take a while. If it takes too long for your taste, just reduce the number of examples seeded, e.g.
by making the array over which appears in line 13 of `db/seeds.db` smaller.
```sh
docker exec -it erdbeere rails c # This opens a rails console inside the container
User.create(email: "[email protected]", password: "whateveryoulike")
```

## Data Structures

The “nicest possible manner” is of course a Web 2.0 application. This is hence a
*Ruby on Rails* project, which isn't all that suitable to represent the
aforementioned data — especially the mathematical implications.

We will explain the internal data structures using example pieces of code.

### Categories, Properties and Implications
Expand All @@ -63,7 +63,7 @@ We will explain the internal data structures using example pieces of code.
ring = Structure.create do |s|
s.name = 'Ring'
s.definition = 'A ring $R$ is an abelian group together with a ' +
'map $R\times R …'
'map $R\times R …'
end

unitary = Property.create do |p|
Expand All @@ -84,7 +84,7 @@ vnr = Property.create(name: 'von Neumann regular (aka absolutely flat)',

Rings are easy classes of objects to represent, as they don't depend on other
structures. But as soon as $R$-modules enter the picture, this becomes decidedly
more complicated, as their properties may depend on their ground ring.
more complicated, as their properties may depend on their base ring.
Structures can hence have building blocks.

```ruby
Expand Down Expand Up @@ -131,7 +131,7 @@ zee_r.satisfies! module_is_fg

### The logic engine

The logic engine makes use of the SATSolver picosat with enabled trace generation.
The logic engine makes use of the SATSolver [picosat](https://fmv.jku.at/picosat/) with enabled trace generation.
The obtained results are then translated to human-readable proofs.

### The GUI
Expand Down