The telements
library offers a set of customizable UI components written in TypeScript
. The default theme
of the library can be easily replaced so that a corresponding corporate identity of a dedicated brand can be represented.
This repository uses yarn workspaces
and typescript
cd path-to/folder-name
git clone [email protected]:telekom/telements.git
cd telements
git checkout development
This repository uses yarn workspaces
, for the symlinks to work correctly please use yarn
in favour of npm
yarn
# build
yarn build
# Components
yarn watch:components
All packages maintained with this monorepo are listed below.
Package | Version | Description |
---|---|---|
cli | x.x.x | TODO: Command line interface for better development experience |
components | 0.0.1 | Component Library as Web Components build with Stencil.js |
config | x.x.x | TODO: Shared configuration |
docs | x.x.x | TODO: Documentation |
You can find some demos in the ./examples
directory
Example | Version | Description |
---|---|---|
boilerplate-angular | 0.0.1 | Angular app example with web-components |
boilerplate-react | 0.0.1 | React app example with react- and web-components |
boilerplate-vue | 0.0.1 | Vue app example with web-components |
We strongly recommend that the community help us make improvements and determine the future direction of the library. To report bugs within this package, please create an issue in this repository.
We welcome contributions from anyone on the internet and are grateful for even the smallest contributions. This document will help get you setup to start contributing back to telements
.
- Fork
telekom/telements
- Clone your fork
- Follow the installation & build steps in the repo's top-level README.
- Setup the recommended Development Tooling.
- Open a
PR
with the[WIP]
flag against thedevelopment
branch and describe the change you are intending to undertake in thePR description
. (see our branch naming conventions) - Before removing the
[WIP]
tag and submitting thePR
for review, make sure: - TODO: It passes our linter checks:
yarn lint
- TODO: It is properly formatted with Prettier:
yarn prettier
- TODO: It passes our continuous integration tests (See: Enabling code coverage checks on your fork for instructions on getting the submit-coverage test to pass on forks)
- You've created/updated the corresponding
CHANGELOG
entries. - Your changes have sufficient test coverage (e.g regression tests have been added for bug fixes)
We have two main branches:
master
: represents the most recently released (published on npm) version of the codebase.development
: represents the current development state of the codebase.
ALL PRs
should be opened against thedevelopment
branch.
Branch names should be prefixed with fix
, feature
or refactor
.
e.g fix/broken-wiki-link
If the PR
only edits a single package, add it's name too
e.g fix/website/broken-wiki-link
CHANGELOGs
TODO: Setup versioning
This is an Example
We use Semantic Versioning for all our published packages. If a change you make corresponds to a semver bump, you must modify the package's CHANGELOG.json file accordingly.
Each CHANGELOG entry that corresponds to a published package will have a timestamp. If no entry exists without a timestamp, you must first create a new one:
{ "version": "1.0.1", // The updated package version "changes": [ { "note": "", // Describe your change "PR": 100 // Your PR number } ] }If an entry without a timestamp already exists, this means other changes have been introduced by other collaborators since the last publish. Add your changes to the list of notes and adjust the version if your PR introduces a greater semver change (i.e current changes required a patch bump, but your changes require a major version bump).
We strongly recommend you use the VSCode text editor
since most of our code is written in Typescript
and it offers amazing support for the language.
We use TSLint
with custom configs to keep our code-style consistent.
TODO: Setup yarn:lint
Use yarn:lint to lint the entire monorepo, and PKG={PACKAGE_NAME} yarn lint to lint a specific package.
If you want to change a rule, or add a custom rule, please make these changes to our tslint-config package. All other packages have it as a dependency.
Integrate it into your text editor:
- VSCode: vscode-tslint
- Atom: linter-tslint
- Auto-formatter
TODO: Setup prettier
We use Prettier to auto-format our code. Be sure to either add a text editor integration or a pre-commit hook to properly format your code changes.
We recommend you install the following packages:
- VSCode: prettier-vscode
- Atom: prettier-atom
A few of our coding conventions are not yet enforced by the linter/auto-formatter. Be careful to follow these conventions in your PR's.