LivelyKernel / LivelyKernel/lively.next

Opening and Saving of Projects

Open
#532 2 comments 0 reactions 1 assignee View on GitHub

@linusha is already working on this.

Since Feb 10, 2023.

🗄️ project management
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.