Coder Social home page Coder Social logo

seantbooker / openmrs-esm-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openmrs/openmrs-esm-core

0.0 1.0 0.0 1.73 MB

The core modules of the OpenMRS Frontend system

License: Other

TypeScript 55.18% JavaScript 14.51% Shell 0.23% HTML 17.44% CSS 12.63%

openmrs-esm-core's Introduction

OpenMRS Frontend Core

This is a Lerna project containing the core packages for the OpenMRS Frontend. These packages handle the "cross-cutting concerns" described in the Domain Decomposition document.

Repository Development

Getting Started

To install and setup the repository just use the following command:

npx lerna bootstrap

For working with the app shell you don't need to have the repository cloned. You can also just use the openmrs directly.

npx openmrs

This is a command line utility for running (or building) the app shell in isolation. In particular, it deals with everything that touches the development, distribution, and deployment of an app shell.

Building

For building the code just run

lerna run build

Verification of the existing packages can also be done in one step using yarn:

yarn verify

To run only the shell locally use yarn, too:

yarn run:shell

Incrementing Version

Run yarn to trigger Lerna's version mode. This will not create a new tag. Tags should be created on GitHub exclusively.

yarn ci:release

Important: Creating a tag on GitHub will trigger a new release.

Creating a Release

First of all: Not every merge into master has to result in release. We should only release when we have gathered enough interesting changes in master to benefit from it.

Now, let's say we have enough interesting changes accumulated in master.

Please check:

  1. Do we have a unique version number that reflects the changes in master (changes as compared to the previous release)? We use minor changes to indicate big new features (requiring attention) and patch levels to indicate rather small fixes and improvements.
  2. If we have new packages in the monorepo - did we set "private": true if we don't want them to be published?
  3. Did we add a publishConfig section to the package.json of all new packages that should be published (i.e., "private": false)? This section should have a "access": "public" field.

If we still need to have a version update run yarn ci:release (see section beforehand) and make a new PR / merge into master with the resulting changeset.

Don't run lerna publish or any related command locally. Once merged into master go to GitHub and draft a new release. The tag should be prefixed with v (e.g., v3.2.1), while the release title should just be the version number (e.g., 3.2.1).

Possibilities

The new architecture offers a couple of interesting possibilities. We go into them one by one.

Proxying OpenMRS Backends

We can now proxy any backend. For instance, using the backend of the demo instance we just run:

npx openmrs debug --backend https://demo.openmrs.org/

There are a couple of interesting public instances:

https://qa-refapp.openmrs.org/
https://demo.openmrs.org/
https://openmrs-spa.org/

openmrs-esm-core's People

Contributors

brandones avatar florianrappl avatar joeldenning avatar denniskigen avatar nkimaina avatar dependabot[bot] avatar donaldkibet avatar jonathandick avatar samuelmale avatar mddubey avatar rmkanda avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.