LivelyKernel / LivelyKernel/lively.next
Opening and Saving of Projects
@linusha is already working on this.
Since Feb 10, 2023.
- Dominant language
- JavaScript
- Stars
- 90
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
# Opening of Projects
When a Project is being opened, the following happens:
- [x] run _version binding_
- [x] ensure that, if a remote is present, we have the latest version pulled
- [x] open a lively.next session with the project loaded as a package
It should be possible to work without any knowledge of git as long as possible!
In case the offline mode is enabled, we:
- [x] create the local commits anyway
The dropdown of the open button allows a user to
- [ ] circumvent the git sync
- [ ] open a different workspace than the default workspace
# Storing of Projects
There exists a save button in the top bar, which also has a dropdown.
- saving will
- [ ] serialize the currently open workspace
- [x] stage, commit and push all changes in the current project
- [x] the commit message should make clear how it was created
The Dropdown allows to
- [ ] just store the workspace
- [ ] just store the workspace under a different name
- [x] open a lively shell
# Version Binding
Version Binding is a mechanism that allows us to indicate that projects/playgrounds belong to a specific version of the lively core.
This mechanism is run before opening a project/playground.
For projects, we indicate the matching core version by the commit hash of the core repo in the "lively" object of a projects `package.json`.
For playgrounds, we indicate the pinned version in the `package.json` of the package of the world.
The mechanism is as follows:
- If the version is ahead the current lively.next
- [x] the load is canceled
- [x] notifying the user to update the system to be able to load that version.
- [x] a button is presented that
- shuts down the server,
- stashes the changes in the core (if there are any)
- pulls the latest version,
- runs install and
- starts the server again
- If the version is behind the current lively.next the load is performed and
- [x] upon completion the user is prompted to confirm that the version tag of the project/playground be updated.
- If that is declined, the session is closed again.
- If confirmed the session continues.
- If the version matches the current lively.next everything loads as normal.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.