Skip to content
Timea edited this page Jan 5, 2022 · 15 revisions

This is intended to give some help when developing SolidOs.

Generics

What is a store in SOlidOS code?

A store is created by rdflib library (see introduction). Synonyms are "kb" (knowledge base), LiveStore A store relates to a javascript object meant to manipulate RDF in memory. Basically, it is an object organized to allow parsing through quads. A quad is a triple with a source document.

Is a store a cache system?

yes mostly if called through solid-logic

Code related

rdflib way of working with data

  • webOperations: performs all HTTP fetch functions
  • fetcher.load: insert a web document to the store if not existing already
  • updater.update: update store data and write them back to the web

Setting up & first steps with SolidOS code

Setting up nvm to develop for SolidOS

Many of the repositories used in this project rely upon Node Version Manager to maintain the Node version used to build the project. Be sure to have it installed.

These scripts assume that ~/.nvm/nvm.sh is a script that is sourced and establishes the nvm shell functions. Depending on your nvm installation and OS, it may be necessary to manually create a symlink from ~/.nvm/nvm.sh to your installed version of nvm.sh. For example, on macOS using Homebrew, the following command will be sufficient to allow these SolidOS scripts to use nvm:

cd ~/.nvm
ln -s /usr/local/opt/nvm/nvm.sh nvm.sh

How to run SolidOs on Apple M1 chip 16.09.21

  • currently SolidOS needs node 12.19.1 and node 13.14.0 and node 12.7.0 but M1 chip cannot install node < v14

Solution:

  • on MacOs terminal one can switch the architecture used to build code, you need to switch to -x86_64 with the command: $env /usr/bin/arch -x86_64 /bin/zsh —-login
  • to check if it worked check with arch command in the terminal, the result should show i386
  • afterward you can proceed to install other node versions: nvm install 12.19.1 and nvm install 13.14.0 and nvm install 12.7.0
  • it can be that mashlib does not build because of errors like ERROR in ./src/styles/index.scss (./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.scss) Module Error (from ./node_modules/sass-loader/dist/cjs.js): Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Node.js 12.x For more information on which environments are supported please see: https://github.com/sass/node-sass/releases/tag/v6.0.1 In this case, you need to run node itself in the right architecture with the command node -p process.arch -> has to display x64. Then you can go ahead and build mashlib again npm run build

In short:

» nvm use 15 Now using node v15.14.0 (npm v7.7.6) » arch -x86_64 zsh

» arch

i386

» node

Welcome to Node.js v15.14.0.

Type .help for more information.

process.arch

'x64'

`

References:

Unauthorised error when you click LogIn

If you get this error perhaps you have previously had a solidos running locally and in that case, you need to delete your cache from localhost.

When you go to localhost:8443 in your browser you see .acl errors

In this case, it could be that something didn't build properly. If you are running npm run watch look closely at your errors. Otherwise, you can also go through all the repos solid-ui, solid-panes, mashlib installing and building verifying that it is successful.

Problems with running the modules

If you for some reason aren't able to get your setup working, you should double-check that Lerna actually manages to bootstrap the repositories. One way of doing this is to check node_modules in one of them and verify that the dependency that should be bootstrapped is actually a symlink to the corresponding repository (e.g. check that workspaces/mashlib/node_modules/solid-ui links to workspaces/solid-ui ). If it doesn't, it is usually because of different version (e.g. mashlib expects a newer version of solid-ui than the one you have locally). Make sure that these are aligned, then bootstrap again by running npm start or do it manually with npx lerna bootstrap (must be run in the root of this repo).

Troubleshooting SolidOS dependencies

When building mashlib you receive a node sass binding type error.

There were breaking changes to sass on node 13+. Currently you need to be on node version 12 in order to build mashlib, otherwise you are very likely to see these errors.

Clone this wiki locally