
Product
Announcing Bun and vlt Support in Socket
Bringing supply chain security to the next generation of JavaScript package managers
@i-tech-uw/esm-sgs
Advanced tools
:wave: New to our project? Be sure to review the OpenMRS 3 Frontend Developer Documentation. You may find the Map of the Project especially helpful. :teacher:
This repository contains frontend modules for O3, specific to the requirements of the SGS distribution.
Check out the developer documentation here.
This monorepo uses yarn.
To install the dependencies, run:
yarn install
To set up environment variables for the project, follow these steps:
Create a copy of the .env.example file by running the following command:
cp example.env .env
Open the newly created .env file in the root of the project.
Add the environment variables you need.
Note: These variables are currently only used for end-to-end tests.
To start a dev server for a specific module, run:
yarn start --sources 'packages/esm-<insert-package-name>-app'
This command uses the openmrs tooling to fire up a dev server running the specified module.
You could provide yarn start with as many sources arguments as you require. For example, to run the patient registration and patient search modules only, use:
If you notice that your local version of the application is not working or that there's a mismatch between what you see locally versus what's in the reference application, you likely have outdated versions of core libraries. To update core libraries, run the following commands:
# Upgrade core libraries
yarn up openmrs @openmrs/esm-framework
# Reset version specifiers to `next`. Don't commit actual version numbers.
git checkout package.json
# Run `yarn` to recreate the lockfile
yarn
To run tests for all packages, run:
yarn turbo run test
To run tests in watch mode, run:
yarn turbo run test:watch
To run tests for a specific package, pass the package name to the --filter flag. For example, to run tests for esm-patient-conditions-app, run:
yarn turbo test --filter=@i-tech-uw/esm-patient-conditions-app
To run a specific test file, run:
yarn turbo run test -- basic-search
The above command will only run tests in the file or files that match the provided string.
You can also run the matching tests from above in watch mode by running:
yarn turbo run test:watch --basic-search
To generate a coverage report, run:
yarn turbo run coverage
By default, turbo will cache test runs. This means that re-running tests wihout changing any of the related files will return the cached logs from the last run. To bypass the cache, run tests with the force flag, as follows:
yarn turbo run test --force
To run unit tests, use:
yarn test
To run E2E tests, make sure the dev server is running by using:
yarn start --sources 'packages/esm-*-app/'
Then, in a separate terminal, run:
yarn test-e2e --headed
Please read our E2E testing guide for more information about E2E testing.
To upgrade your Playwright version, update both the package.json file and the e2e/support/bamboo/playwright.Dockerfile.
For documentation about our design patterns, please visit our design system documentation website.
The main branch of this repo is deployed in a demo environment.
This module is designed to be driven by configuration files.
To increment the version, run the following command:
yarn release
You will need to pick the next version number. We use minor changes (e.g. 3.2.0 → 3.3.0)
to indicate big new features and breaking changes, and patch changes (e.g. 3.2.0 → 3.2.1)
otherwise.
Note that this command will not create a new tag, nor publish the packages.
After running it, make a PR or merge to main with the resulting changeset.
Once the version bump is merged, 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 be the version number (e.g., 3.2.1). The creation of the GitHub release
will cause GitHub Actions to publish the packages, completing the release process.
Don't run
npm publishoryarn publish. Use the above process.
FAQs
Custom applications for the O3 version of SGS
We found that @i-tech-uw/esm-sgs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Bringing supply chain security to the next generation of JavaScript package managers

Product
A safer, faster way to eliminate vulnerabilities without updating dependencies

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.