Skip to content

Projects

linusha edited this page May 22, 2023 · 2 revisions

What are Projects?

Projects are a new way to organize your work in lively.next. Previously, users had to create worlds and load local packages from disk. Now, users can create Projects that can be opened directly from the Dashboard. Opening such a project will automatically load a package of modules that exist as real files on disk when lively has loaded.

How to work with Projects?

On the Dashboard, you can either create a new Project by pressing the green button or load any project that exists on the machine where your lively server is running. In most cases, these will be all projects that exist in the local_projects folder of your local lively.next installation.

image

Authenticating with GitHub

To use lively.next with Projects, it is strictly necessary to have a GitHub Account!. When you are not currently logged in inside of lively.next, you will be prompted to do so upon creating a project.

github_login.mp4

From a technical standpoint, logging in will store a token and some additional data in the localStorage of your browser. Thus, besides explicitly logging out, deleting the localStorage of your browser or switching browser will log you out.

Creating Projects

When you are logged in, you can create a project. There are two ways to do that: Creating an entirely new project or initializing an existing project from a remote.

The latter option will take the URL to a GitHub repository that contains a lively.next Project and clone that to your local machine and open it afterwards. If a Project is opened, that means that the SystemBrowser automatically loads the modules contained in the Project and that you can save it. Currently, correct behavior is only guaranteed for repositories that are public and that you have write access to with the logged in GitHub account.

When you create a new Project you can choose to also create a GitHub repository for the new project. If you choose to do so, the repository will automatically created and lively will automatically set everything up for you to publish your progress and retrieve the latest changes that other collaborateurs may have made. Note, that there is currently no way to add a remote to a local repository inside of lively.next if you do not tick this box. This means that to set up a remote later, you will need to use git on the command line. We currently do not support the creation of private repositories. You can choose to create the repository under an organization where you have the necessary rights, if you want to. The project will be stored inside of a folder of the local_projects folder on your machine. The naming scheme is "owner-projectName", where owner is your github name or the name of the chosen organization respectively.

Opening Projects

After you have created a project, that project will automatically be opened for you. Another way to open a project is via the dashboard (see above). You can also open a project via the browser URL. The scheme for this is as follows: http://localhost:9011/projects/load?name=NAMEOFTHEPROJECT&owner=OWNINGGITHUBENTITY. For example, my GitHub username is linusha and I could open a textproject by entering: http://localhost:9011/projects/load?name=testproject&owner=linusha. When you open a project, you can find its files in the system browser automatically:

image

Saving and updating Projects

When you load a Project, it will automatically retrieve the most current version of the project, if it is hosted on GitHub. Note, that working without internet access currently leads to undefined behavior. You can save your changes by pressing the save button in the topbar of lively.next. A prompt will open where you can describe what changes you made.[Note, that this will also be used as the commit message for this save, as a save is technically nothing other than a commit.]

image

[Technical Note: When saving, you can also choose to bump the minor or major version of the Project. The patch version gets bumped automatically, if you do not pick one of these.]

Technical Stuff

A Project comes with a bunch of preconfigurations for you to get stuff done easily.

Build Scripts

We preconfigure your project with a build script that should get you started. You can run that with npm run build or npm run build-minified respectively.

CI

When you generate a Project with a remote, we automatically generate a GitHub Action that runs the tests inside of your project on every push.