{"id":13554021,"url":"https://github.com/wmfs/tymly","last_synced_at":"2025-04-12T17:44:09.731Z","repository":{"id":23053286,"uuid":"97964604","full_name":"wmfs/tymly","owner":"wmfs","description":"An open framework for building digital services.","archived":false,"fork":false,"pushed_at":"2024-11-06T10:44:16.000Z","size":5044,"stargazers_count":122,"open_issues_count":2,"forks_count":26,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-03T23:08:38.125Z","etag":null,"topics":["low-code","monorepo"],"latest_commit_sha":null,"homepage":"https://wmfs.github.io/tymly-website/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wmfs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-21T15:54:17.000Z","updated_at":"2024-11-14T08:38:14.000Z","dependencies_parsed_at":"2024-01-19T17:56:09.502Z","dependency_job_id":"a8547a49-bd51-4cca-a36e-a8b372c718e2","html_url":"https://github.com/wmfs/tymly","commit_stats":{"total_commits":72,"total_committers":6,"mean_commits":12.0,"dds":0.625,"last_synced_commit":"9068bf0dac8a004e6237d41ec9017a80303f77d9"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmfs%2Ftymly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmfs%2Ftymly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmfs%2Ftymly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmfs%2Ftymly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wmfs","download_url":"https://codeload.github.com/wmfs/tymly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248609250,"owners_count":21132876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["low-code","monorepo"],"created_at":"2024-08-01T12:02:38.128Z","updated_at":"2025-04-12T17:44:09.698Z","avatar_url":"https://github.com/wmfs.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"![Tymly Logo](https://github.com/wmfs/tymly/blob/master/assets/tymly_wordmark_and_logo_medium.svg)\n\n[![Tymly Package](https://img.shields.io/badge/tymly-monorepo-blue.svg)](https://tymly.io/)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/wmfs/tymly/blob/master/packages/pg-concat/LICENSE)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwmfs%2Ftymly-core.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwmfs%2Ftymly-core?ref=badge_shield)\n\n# Introduction\n\n__Tymly is the product of many inter-related [Node.js](https://nodejs.org/en/) packages. The source code for all these packages is maintained in separate GitHub repositories in the [WMFS organization](https://github.com/wmfs).__\n\nHowever, 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.\nIt's also important to ensure all these repos are linked together locally for the best possible developer experience.\n\n_And that's what this repo can help with!_\n\nHere we have an ___empty___ [Lerna](https://github.com/lerna/lerna)-powered [monorepo](https://medium.com/@maoberlehner/monorepos-in-the-wild-33c6eb246cb9).\nBy 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.\n\n* __Subsequent synchronization attempts will update local repos as necessary, and clone anything new that's become available.__\n\n\n# Environment\n\n__There are a couple of things you'll need installed for all this to work...__\n\n### Git\n\n\u003e Git is a version-control system for tracking changes in computer files and coordinating work on those files among multiple people.\n\n* https://git-scm.com/downloads\n\n### Node.js\n\n\u003e Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser.\n\n* https://nodejs.org\n* Currently, Node `v10.14.2` and above is supported.\n\n### Lerna\n\n\u003e 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.\n\nWith Node installed, install Lerna globally via this command:\n\n``` bash\nnpm install lerna -g\n```\n\n# GitHub Access Token\n\n\u003e Instead of using your GitHub password, we use a [Personal Github Access Token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/).\n\u003e 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!__\n\n__Assuming you've already signed-up with GitHub, you'll need to create a new **Access Token** for all your Tymly-related interactions.__\n\n* Generating a new token value is easy enough, first go here:\n  * https://github.com/settings/tokens\n* Then click the __\"Generate new token\"__ button.\n* Feel free to give your new token any name you like, but something like \"*Tymly Monorepo*\" will be fine.\n* As for those __Scopes__, click this one:\n  * [x] __repo__ (Full control of private repositories)\n* Then hit __\"Generate token\"__.\n* Copy the token value: we'll be setting an environment variable to it later.\n\n# Cloning\n\nNext you'll need to clone this repo. From the __Git__ shell:\n\n`git clone https://github.com/wmfs/tymly.git`\n\nThen, from the command prompt, install all the __Node.js__ packages required to make this repo work:\n\n```\ncd tymly\nnpm install\n```\n\n# Environment Variables\n\n__To integrate this repo with your GitHub account, two [environment variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) will need defining...__\n\n| Environment Variable | Notes                                                                 |\n| -------------------- | --------------------------------------------------------------------- |\n| `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).              |\n| `TYMLY_GITHUB_TOKEN` | And the value of this environment variable should be set to the personal __Access Token__ you previously generated. |\n\n# Synchronizing\n\nNearly there! :smiley:\n\nTo synchronize your empty Tymly [monorepo](https://medium.com/@maoberlehner/monorepos-in-the-wild-33c6eb246cb9), run this from within the `/tymly` directory:\n\n### `npm run sync`\n\n__Which will:__\n\n* Connect to GitHub (using the username/token values defined in the environment variables)\n* Clone or pull Tymly repos into the `/blueprints`, `/packages` and `/plugins` directories.\n\n__...which should lead to output looking similar to:__\n\n__Just `npm run sync` anytime you want to ensure your local Tymly repos reflect those on GitHub.__\n\nYou can also run `npm run sync public-only` to only pull in public packages only.\n\n# Bootstrapping\n\nAfter synchronizing, a red message may appear:\n\n\u003e Oh no! You need to 'lerna bootstrap'\n\nOn these (hopefully quite rare) occasions, from within the `/tymly` directory, you'll need to:\n\n### `npm run bootstrap`\n\nAnd after a while, you're good to go! :sweat_smile:\n\n# Next steps\n\n__With your Tymly repos cloned and packages installed, what next?__\n\n1. Check out our [Tymly docs](https://wmfs.github.io/tymly-website/) site.\n2. Have a read of our contributor [Code of Conduct](https://github.com/wmfs/tymly/blob/master/CODE_OF_CONDUCT.md).\n3. Also, please read our notes about [contributing](https://github.com/wmfs/tymly/blob/master/CONTRIBUTING.md).\n\n# License\n\n[MIT](https://github.com/wmfs/tymly/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmfs%2Ftymly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwmfs%2Ftymly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmfs%2Ftymly/lists"}