Coder Social home page Coder Social logo

nordeck / matrix-widget-toolkit Goto Github PK

View Code? Open in Web Editor NEW
32.0 1.0 7.0 5.01 MB

Reusable framework for creating Matrix widgets

License: Apache License 2.0

JavaScript 2.55% Shell 0.18% Dockerfile 0.24% TypeScript 96.37% HTML 0.35% Smarty 0.31%
matrix-widget-api element matrix nordeck hacktoberfest

matrix-widget-toolkit's Introduction

Matrix Widget Toolkit

CI

Reusable framework for creating Matrix widgets.

This repository contains multiple packages that provide reusable components that can be used to write Matrix/Element widgets.

Background

Nordeck is developing multiple widgets that are all based on the matrix-widget-api. This collection of packages shares the common parts of our widgets:

  • Advanced patterns using the matrix-widget-api, providing an API that better fits our use cases.
  • Integrating it into React applications.
  • Provide a common theming that integrates well with Element (the only Matrix client that supports the matrix-widget-api up to now).
  • Testing support

Getting Started

This repository contains an example widget that shows the usage of the packages.

How to Contribute

Please take a look at our Contribution Guidelines. Check the following steps to develop for the packages:

Requirements

You need to install Node.js (>= 20.0.0, prefer using an LTS version) and run yarn to work on this package.

Installation

After checkout, run yarn install to download the required dependencies

Warning Do not use npm install when working with this package.

Available Scripts

The following commands are available:

  • yarn dev:example: Start the example app.
  • yarn start:example: Start the example app with a self-signed HTTPS certificate.
  • yarn build: Build all packages and the example app.
  • yarn test: Watch all packages for changes and run tests.
  • yarn tsc: Check TypeScript types for errors in all packages.
  • yarn lint: Run eslint on all packages.
  • yarn prettier:write: Run prettier on all files to format them.
  • yarn depcheck: Check all packages for missing or unused dependencies.
  • yarn deduplicate: Deduplicate dependencies in the yarn.lock file.
  • yarn changeset: Generate a changeset that provides a description of a change.
  • yarn translate: Update translation files from code.
  • yarn generate-api-report: Every time you change the public API interface, you have to update the api-report.md of the related package using this script. The API report provides an overview about the exported elements of the package.

Versioning

All packages use automated versioning. Each change should be accompanied with a specification of the impact (patch, minor, or major) and a description of the change. Use yarn changeset to generate a new changeset for the project you touch in a pull request. Learn more in the .changeset folder.

Once the change is merged to main, a "Version Packages" pull request will be created. As soon as that is merged, the packages will be released to the package registry.

Processing Dependabot PRs

Dependabot PRs which update packages that are direct dependencies of our packages (and not devDependencies or only a dependency of the example widget) need a changeset as described above. Specify the impact as patch.

Architecture Decision Records

We use Architecture Decision Records (ADR)s to document decisions for our software. You can find them at /docs/adrs.

License

This project is licensed under the Apache 2.0 license.

matrix-widget-toolkit's People

Contributors

ahmadkadri avatar dependabot[bot] avatar dhenneke avatar fox32 avatar github-actions[bot] avatar griffinli avatar maheichyk avatar mgcm avatar nordeck-ci avatar nurjinjafar avatar weeman1337 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.