Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sapegin/mrm
Codemods for your project config files
https://github.com/sapegin/mrm
cli codemod config dotfiles hacktoberfest opensource scaffold template
Last synced: 25 days ago
JSON representation
Codemods for your project config files
- Host: GitHub
- URL: https://github.com/sapegin/mrm
- Owner: sapegin
- License: mit
- Created: 2016-12-12T20:23:27.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-27T22:42:58.000Z (8 months ago)
- Last Synced: 2024-10-01T17:22:48.145Z (about 1 month ago)
- Topics: cli, codemod, config, dotfiles, hacktoberfest, opensource, scaffold, template
- Language: JavaScript
- Homepage: https://mrm.js.org/
- Size: 7.85 MB
- Stars: 1,608
- Watchers: 17
- Forks: 77
- Open Issues: 10
-
Metadata Files:
- Readme: Readme.md
- Contributing: Contributing.md
- Funding: FUNDING.yml
- License: License.md
Awesome Lists containing this project
- awesome-codemods - mrm - Codemods for your project config files. (Misc / ant-design)
- awesome-list - mrm
- jimsghstars - sapegin/mrm - Codemods for your project config files (JavaScript)
README
# Mrm
[![npm](https://img.shields.io/npm/v/mrm.svg)](https://www.npmjs.com/package/mrm) [![Codecov](https://codecov.io/gh/sapegin/mrm/branch/master/graph/badge.svg)](https://codecov.io/gh/sapegin/mrm) [![Node.js CI status](https://github.com/sapegin/mrm/workflows/Node.js%20CI/badge.svg)](https://github.com/sapegin/mrm/actions)
Command line tool to help you keep configuration (`package.json`, `.gitignore`, `.eslintrc`, etc.) of your open source projects in sync.
## Features
- Doesn’t overwrite your data unless you want to
- Minimal changes: keeps the original file formatting or read the style from EditorConfig
- Minimal configuration: tries to infer configuration from the project itself or from the environment
- [Customizable tasks](#tasks) for popular tools like ESLint, Prettier, lint-staged, etc. included
- [Custom tasks](https://mrm.js.org/docs/making-tasks) and [tools](https://mrm.js.org/docs/mrm-core) to work with JSON, YAML, INI, Markdown and new line separated text files
- Sharing tasks via npm and grouping them into [presets](https://mrm.js.org/docs/making-presets)![](https://d3vv6lp55qjaqc.cloudfront.net/items/1g0e2M3m2Y3j0m3B3n1t/Image%202017-06-20%20at%209.00.39%20PM.png)
## Motivation
Most of the available tools are template based. Template approach works moderately well for new project generation but doesn’t work well for updating. Mrm’s approach is closer to [codemods](https://github.com/facebook/codemod) than templates.
Read more in my article, [Automating open source project configuration with Mrm](https://blog.sapegin.me/all/mrm), or watch [my talk on Mrm](https://www.youtube.com/watch?v=5tHfAf4bRcM).
## Documentation
- [Getting started](https://mrm.js.org/docs/getting-started)
- [Making your own tasks](https://mrm.js.org/docs/making-tasks)
- [Sharing tasks via npm](https://mrm.js.org/docs/sharing-tasks)
- [Making your own presets](https://mrm.js.org/docs/making-presets)
- [FAQ](https://mrm.js.org/docs/faq)
- [Utilities to write codemods](https://mrm.js.org/docs/mrm-core)## Tasks
These tasks are [included by default](https://mrm.js.org/docs/mrm-preset-default):
- [ci](https://mrm.js.org/docs/mrm-task-ci)
- [codecov](https://mrm.js.org/docs/mrm-task-codecov)
- [contributing](https://mrm.js.org/docs/mrm-task-contributing)
- [dependabot](https://mrm.js.org/docs/mrm-task-dependabot)
- [editorconfig](https://mrm.js.org/docs/mrm-task-editorconfig)
- [eslint](https://mrm.js.org/docs/mrm-task-eslint)
- [gitignore](https://mrm.js.org/docs/mrm-task-gitignore)
- [jest](https://mrm.js.org/docs/mrm-task-jest)
- [license](https://mrm.js.org/docs/mrm-task-license)
- [lint-staged](https://mrm.js.org/docs/mrm-task-lint-staged)
- [package](https://mrm.js.org/docs/mrm-task-package)
- [prettier](https://mrm.js.org/docs/mrm-task-prettier)
- [readme](https://mrm.js.org/docs/mrm-task-readme)
- [semantic-release](https://mrm.js.org/docs/mrm-task-semantic-release)
- [styleguidist](https://mrm.js.org/docs/mrm-task-styleguidist)
- [stylelint](https://mrm.js.org/docs/mrm-task-stylelint)
- [travis](https://mrm.js.org/docs/mrm-task-travis)
- [typescript](https://mrm.js.org/docs/mrm-task-typescript)## Changelog
The changelog can be found on the [Releases page](https://github.com/sapegin/mrm/releases).
## Sponsoring
This software has been developed with lots of coffee, buy me one more cup to keep it going.
## Contributing
Bug fixes are welcome, but not new features. Please take a moment to review the [contributing guidelines](Contributing.md).
## Authors and license
[Artem Sapegin](https://sapegin.me) and [contributors](https://github.com/sapegin/mrm/graphs/contributors).
MIT License, see the included [License.md](License.md) file.