-
General:
- update Phoenix to 1.17
- refactor web app replacing views with components
-
Sim:
- Sim.AccessProxy to block concurrent updates, but allow concurrent reads
- more functions for grid: Sim.Grid.values/1 and Sim.Grid.filter/2
- Grid, Torus and the new AccessProxy have been extracted to Ximula
-
Sim:
- refactored returned errors from domain_services
- data update function
- add explicit event format to be passed to event bus.
[{:event, :pawn_moved, position: [1,2]}]
- data_helpers provide new functions
change_data(change_func, update_func)
andchange_data(get_func, change_func, update_func)
-
General:
- update Elixir to 1.14.1
- update Phoenix LiveView to 0.18
- various updates
-
Sim:
- refactored simulation loop to use a tick function, instead of calling the command bus directly. That way it can be used independently of the rest of the realm modules.
- map and merge functions for Grid
- DomainService handling now multiple events from an executions
- DomainService handling more exit events
- EventBus can now handle events and commands, commands are forwarded to the CommandBus, while events as before get processed by the reducers.
- helper function
change_data
can now return a tuple with {data_to_stored, event_command_list}
-
General:
- various updates
-
Sim:
- refactored event pipeline to use GenStage: CommandBus -> DomainServices -> EventBus -> EventReducers
-
General:
- update Elixir to 1.13.1
- update Phoenix 1.6 and Phoenix Live View 0.17
- refactor all live views to use the new heex syntax
- various upgrades, Poison 5.0
- update Chart.js to 3.6.0
- replace Parcel with esbuild
- update tailwindcss to 3.0
- refactor Dockerfiles and reorganize CI/CD pipeline
-
Chat:
- extract message and chat to their own component
-
Game Of Life:
- push only changes to game of life live_view for faster rendering
- adapt dimensions of grid to viewport
-
Lotka Voltera
- edit vegetation, herbivores or predators on the chart page
-
Sim
- update object within in vitro
-
General:
- implement the PETAL Stack
- css: replaced milligram with tailwindcss
- css: revamped the design with a new dark theme
- included line-awesome as npm package
- javascript: include Alpine 101
- validate greater also validates smaller at same time
- EctoType for simulated integers (are floats behind the scenes)
- preview images on landing page
- various upgrades
- credo 1.5.5
- parcel to 2.0.0-beta.3.1 (to make alpine work with parcel)
- Sim:
- Introducing event sourcing
- Replace the global lock CommandGuard with CommandBus
- CommandBus and Domain Services executing commands in groups
- EventBus handling events
- Extract broadcasting as its own event reducer
- various upgrades
- Elixir 1.11.2
- Phoenix Live View 0.15
- Phoenix Live Dashboard 0.4
- Components for counter (digit, action buttons)
- Components for game of life (form, grid, action buttons)
- shared components:
- entity form
- Sim:
- introduce command handlers
- command guard to control concurrent workers on the data
- SimulationLoop holds state of running flag
- Game of Life using commands
- Lotka Volterr
- predators
- various upgrades
- credo
- Lotka Volterra simulation
- Vegetation with limited capacity
- Herbivores eating vegetation
- Sim Laboratory:
- InVitro are session like simulation containers that can be used per live_view
- Registry will remove expired sim containers after a timeout
- started using shared components
- Start button
- various upgrades
- Phoenix Live View 0.14
- sentry 8.0
-
extract Game of Life as separate sub application, with its own supervision tree.
-
refactor realm to a more robust architecture
-
Sim.Realm.Data: holds the data and broadcasts changes to PubSub. This part is the most robust one, the data will still be available even if the server and the simulation loop crash.
-
Sim.Realm.SimulationLoop: Has a recurring tick when the simulation is running. This will trigger the realm server to block all incoming request during simulation.
-
Sim.Realm.Server: All incoming request are going through this server. It also executes the sim funtions in a separate task.
-
There are two Supervisors, one to monitor the data and the simulation loop, the other monitors the server with its task supervisor.
-
-
use macros to customize Sim.Realm context and server functions.
- various upgrades
- Elixir 1.10.3
- Phoenix 1.5.1
- Phoenix Live View 0.13.3 (including new adaptions)
- Phoenix PubSub 2.0
- cypress 4.5.0
- include Phoenix Live Dashboard (dev only)
- improve pipeline by storing test containers for further steps
- split Dockerfile for pipline into test and release
- add credo to pipeline
- remove cypress from devDependencies
- new application
sim
- Sim.Grid a 2 dimensional map
- Sim.Torus a grid with no borders
- abstraction of RealmSupervisor, Realm, SimulationLoop
- Game of Life live view
- Add Line-Awesome font
- extract common view logic to
view_helper.ex
- Add Logger to context, simulation loop and realm
-
Use Nginx as server service (not as docker container) with Letsencrypt (not as docker container)
-
Counter example, with realm, root, context, simulation modules
-
CSS variables to define colors
-
Fix separate set current_user and check for member area
-
Fix clear input field after sending chat message
-
Update to Phoenix Live View 0.2.1
- Chat with Live View
- Store chat messages in GenServer
- integration tests with cypress.io
- new environment
integration
for CI - new docker compose for integrtion on CI
- replace Bugsnag with Sentry
- Runs as Docker container
- Releases with Elixir 1.9
- CI/CD with Semaphore 2
- Assets via Parcel
- Bugsnag integration
- Authentication with Github account
- Authorization with Canada and Canary
- Phoenix Live View