• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open framework for building digital services.

Tymly Logo

Tymly Package Commitizen friendly JavaScript Style Guide license FOSSA Status

Introduction

Tymly is the product of many inter-related Node.js packages. The source code for all these packages is maintained in separate GitHub repositories in the WMFS organization.

However, for those wanting to develop the Tymly framework itself, it can be tricky to keep-track as new Tymly repos are added and existing Tymly repos evolve. It's also important to ensure all these repos are linked together locally for the best possible developer experience.

And that's what this repo can help with!

Here we have an empty Lerna-powered monorepo. By following the instructions below, it's possible to automatically fill the empty /blueprints, /packages and /plugins directories with the freshest Tymly code from https://github.com/wmfs.

  • Subsequent synchronization attempts will update local repos as necessary, and clone anything new that's become available.

Environment

There are a couple of things you'll need installed for all this to work...

Git

Git is a version-control system for tracking changes in computer files and coordinating work on those files among multiple people.

Node.js

Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser.

Lerna

We use the Lerna tool tool to link together all the various Tymly packages, and also "hoist" shared dependencies to help reduce space/memory overheads.

With Node installed, install Lerna globally via this command:

npm install lerna -g

GitHub Access Token

Instead of using your GitHub password, we use a Personal Github Access Token. This approach provides a few advantages - in particular finer access control and more specific monitoring. Be sure to keep the value of your Access Token value secret!

Assuming you've already signed-up with GitHub, you'll need to create a new Access Token for all your Tymly-related interactions.

  • Generating a new token value is easy enough, first go here:
  • Then click the "Generate new token" button.
  • Feel free to give your new token any name you like, but something like "Tymly Monorepo" will be fine.
  • As for those Scopes, click this one:
    • repo (Full control of private repositories)
  • Then hit "Generate token".
  • Copy the token value: we'll be setting an environment variable to it later.

Cloning

Next you'll need to clone this repo. From the Git shell:

git clone https://github.com/wmfs/tymly.git

Then, from the command prompt, install all the Node.js packages required to make this repo work:

cd tymly
npm install

Environment Variables

To integrate this repo with your GitHub account, two environment variables will need defining...

Environment Variable Notes
TYMLY_GITHUB_USER The value of this environment variable should be set to the username that you use to log into GitHub with (and the account you generated that access token with earlier).
TYMLY_GITHUB_TOKEN And the value of this environment variable should be set to the personal Access Token you previously generated.

Synchronizing

Nearly there! πŸ˜ƒ

To synchronize your empty Tymly monorepo, run this from within the /tymly directory:

npm run sync

Which will:

  • Connect to GitHub (using the username/token values defined in the environment variables)
  • Clone or pull Tymly repos into the /blueprints, /packages and /plugins directories.

...which should lead to output looking similar to:

Just npm run sync anytime you want to ensure your local Tymly repos reflect those on GitHub.

You can also run npm run sync public-only to only pull in public packages only.

Bootstrapping

After synchronizing, a red message may appear:

Oh no! You need to 'lerna bootstrap'

On these (hopefully quite rare) occasions, from within the /tymly directory, you'll need to:

npm run bootstrap

And after a while, you're good to go! πŸ˜…

Next steps

With your Tymly repos cloned and packages installed, what next?

  1. Check out our Tymly docs site.
  2. Have a read of our contributor Code of Conduct.
  3. Also, please read our notes about contributing.

License

MIT

More Repositories

1

statebox

Orchestrate workflows using Amazon States Language
JavaScript
44
star
2

cardscript

A JSON-based language for describing rich user interfaces.
Vue
32
star
3

lerna-sync

A package to synchronize distributed GitHub repos inside a Lerna monorepo.
JavaScript
15
star
4

sharepoint

Trying to upload/list/download documents in Microsoft SharePoint, using Node.js
JavaScript
11
star
5

json-schema-builder

Generate JSON-Schema schemas via a UI-orientated DSL.
JavaScript
11
star
6

cardscript-to-quasar

Produces a template for use with Quasar from some Cardscript.
JavaScript
8
star
7

statelint

A validator for Amazon State Language JSON files.
JavaScript
8
star
8

chimp

A dynamic PostgreSQL database generator, and integrated extract, transform and load tool.
Python
8
star
9

pg-diff-sync

Takes two objects that describe the structure of a database and produces the PostgreSQL statements required to get from one to the other.
JavaScript
7
star
10

pg-info

Grabs metadata from a PostgreSQL database.
JavaScript
6
star
11

xml2csv

JavaScript
5
star
12

quasar-map-mapbox

A Quasar Map component, implemented with MapBox
Vue
4
star
13

tymly-core

An open framework for building digital services.
JavaScript
4
star
14

smithereens

JavaScript
2
star
15

zx-tymly

An example Tymly App client, in the style of a ZX Spectrum.
JavaScript
2
star
16

relationize

Takes a set of JSON Schema definitions and returns a relational database structure capable of storing compliant data.
JavaScript
2
star
17

coalesce

Yes.
Java
2
star
18

tymly-base

Base Tymly Docker image
Shell
2
star
19

tymly-statelint

Validator for Amazon States Language with Tymly Extensions JSON
JavaScript
2
star
20

pg-model

JavaScript
2
star
21

tymly-data-types

A work-in-progress library of data types often found in digital services.
JavaScript
2
star
22

asl-choice-processor

For determining the next state given an Amazon States Language "Choices" definition and a set of values.
JavaScript
2
star
23

rbac

Role Based Access Control support library
JavaScript
2
star
24

supercopy

JavaScript
2
star
25

j2119

A general-purpose validator generator that uses RFC2119-style assertions as input.
JavaScript
1
star
26

wmfs.github.io

Static site for the wmfs organization
HTML
1
star
27

tymly-cli-rest-client

CLI tool to launch Tymly State Machines over REST
JavaScript
1
star
28

food-hygiene-blueprint

Tymly blueprint to support "Food Hygiene Ratings" open data as produced by the Food Standards Agency
JavaScript
1
star
29

pizza-blueprint

Shell
1
star
30

json-schema-markdown-a-tron

Turn a JSON Schema object into markdown string
JavaScript
1
star
31

tymly-diaries-plugin

JavaScript
1
star
32

tymly-sharepoint-plugin

A plugin for accessing sharepoint from within Tymly
JavaScript
1
star