Skip to content

Contribution Guide

English | Français | 한국어 | 日本語

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 Poetry to manage the development environment. Poetry provides powerful dependency management features and is very convenient for managing virtual environments.

Environment Setup

First, set up the development environment as follows:

  1. Install Poetry according to the instructions in the official documentation.
  2. Clone the repository and move to the project directory.

    git clone https://github.com/ryul1206/multilingual-markdown.git
    cd multilingual-markdown
    
  3. This step is optional, but I recommend creating a virtual environment in the project directory. To do this, run the following commands:

    poetry config virtualenvs.in-project true
    poetry config virtualenvs.path "./.venv"
    
  4. Create a virtual environment and install the dependencies specified in the pyproject.toml file:

    poetry install --with dev,test,docs
    
  5. To activate the virtual environment, run the following command:

    poetry shell
    

Development

Now that the development environment is set up, you can modify and test MMG. To apply the modified MMG, run the following command:

poetry install

For example, if you modify version to 9.9.9-beta in pyproject.toml, the result of mmg --version will be different as follows:

$ poetry shell

------------------------------------------------------------------------
(mmg-py3.11) $ mmg --version
Version 2.0.0

------------------------------------------------------------------------
# Change version in pyproject.toml from 2.0.0 to 9.9.9-beta

------------------------------------------------------------------------
(mmg-py3.11) $ poetry install
Installing dependencies from lock file

No dependencies to install or update

Installing the current project: mmg (9.9.9-beta)

------------------------------------------------------------------------
(mmg-py3.11) $ mmg --version
Version 9.9.9b0