Contribution Guide
What can I contribute?
There are many ways to contribute, such as translation, improvement, suggestion, bug report, etc.
- New translations are very helpful for those who are not familiar with foreign languages to learn something new.
- Providing ideas for adding new features or improving existing features is very helpful for the development of the next version.
- Improving documentation or adding examples helps others to have a better user experience.
- Reporting bugs helps to make MMG more stable.
How can I contribute?
- If you want to suggest or improve something, please create a new issue on GitHub's Issues.
- You can also send a Pull Request.
- Please feel free to ask questions on GitHub's Discussions.
Are all suggestions accepted?
I always welcome and appreciate your opinions. I try to accept as many suggestions as possible, but realistically I cannot accept all suggestions.
The following cases may not be accepted:
- If it does not match the direction of MMG
- MMG hopes to be as intuitive as possible.
- MMG does not prefer a complex structure of a base file.
- If it is more appropriate to create another program rather than adding a feature to MMG
- For example, if there are too many languages to manage in a base file, it may be very inconvenient for users to use MMG directly. In such cases, it would be more appropriate to create a new GUI program based on MMG.
- If there is a problem with the open source license
- MMG uses the MIT license, so it is not compatible with the GPL license.
The following cases may be delayed:
- Features that require paid services
- MMG aims to be free software, so paid services should be provided as an option.
- Features that require an internet connection
- MMG should be able to work even in offline environments, so features that only work online should be provided as an option.
How can I build MMG locally for development?
I recommend using a Python virtual environment so as not to conflict with your existing local development environment. MMG uses uv to manage the development environment. uv provides powerful dependency management features and is very convenient for managing virtual environments.
Environment Setup
First, set up the development environment as follows:
- Install uv according to the instructions in the official documentation.
-
Clone the repository and move to the project directory.
git clone https://github.com/ryul1206/multilingual-markdown.git cd multilingual-markdown
-
Create a virtual environment and install the dependencies specified in the
pyproject.toml
file:
uv sync --group dev --group test
uv sync --link-mode=copy --group dev --group test
- To activate the virtual environment, run the following command:
source .venv/bin/activate
.venv\Scripts\activate
Development
Now that the development environment is set up, you can modify and test MMG. To apply the modified MMG, run the following command:
uv sync --group dev --group test
uv sync --link-mode=copy --group dev --group test
For example, if you modify version
to 9.9.9-beta
in pyproject.toml
, the result of mmg --version
will be different as follows:
(mmg) $ mmg --version
Version 2.0.1
------------------------------------------------------------------------
# Change version in pyproject.toml from 2.0.1 to 9.9.9-beta
(mmg) $ uv sync --group dev --group test
Resolved 151 packages in 1ms
Built mmg @ file:///D:...
Prepared 1 package in 1.05s
Uninstalled 1 package in 4ms
Installed 1 package in 53ms
~ mmg==9.9.9b0 (from file:///D:...)
------------------------------------------------------------------------
(mmg) $ mmg --version
Version 9.9.9b0