Contributing
============
.. _reporting:
Reporting issues
----------------
At this time, the most useful thing you can do to help is and useful
bug reports to the `Issue Tracker`_
In your report, please discuss what you wanted to happen as well as
what happened. Also, please include enough information to reproduce
the issue. Such as:
- the name and version of the program you were running - usually a shell
- the version of Emacs you're running, taken, for example, from :kbd:`M-x about-emacs`
- whether you're running Emacs in a window environment or a terminal
- what kind of prompt you're using, that is, what it looks like, what
character it ends with, how many lines it has and whether you're
using any kind of right prompt
.. index::
pair: command; mistty-start-log
pair: command; mistty-stop-log
If you can reproduce reliably, please include the content of the
buffer :code:`*mistty-log*` into your report, as follows:
- Enable logging by calling :kbd:`M-x mistty-start-log`
- Reproduce the issue
- Go to the buffer :code:`*mistty-log*`
- Call :kbd:`M-x mistty-stop-log` to avoid getting more log entries
- Copy the buffer content and paste it into the issue. The log
includes everything that you write to the terminal and everything
that you get back from the terminal. Please make sure you're not
including any private information, such as password - remove them if
necessary...
If you cannot reproduce reliably,
- go to :kbd:`M-x customize-option mistty-backlog-size` to set the
backlog size to a large value, such as 50
- use MisTTY normally, until the issue comes back
- once it has happened again, immediately call :kbd:`M-x
mistty-start-log`. The log will then contain entries for events that
happened just *before* you called the command.
- call :kbd:`M-x mistty-stop-log`
- copy the content of the :code:`*mistty-log*` buffer, strip out
anything private, and include it into the issue.
.. _Issue tracker: https://github.com/szermatt/mistty/issues
.. _discussion: https://github.com/szermatt/mistty/discussions
Suggesting features
-------------------
Please create a new `discussion`_ in the Ideas category or add a
feature suggestions to the `Issue Tracker`_.
Asking questions
----------------
Start a new `discussion`_ with your question in the General category.
Code contributions
------------------
To contribute code to the project, open a `Pull Request`_.
Before you do that, please make sure the any new features is covered
by tests and that the tests pass.
To run the tests, install and setup `eldev`_, then run :command:`eldev
test`.
Tests can also be run from inside of Emacs, using `M-x
ert-run-tests-interactively` but when you do so, be aware that there
might be unexpected interaction with your Emacs configurations. The
tests passing reliably when run using :command:`eldev test` is what
matters.
Please also make sure your commit message follows `Conventional
Commits 1.0.0 `_, in
short, the commit message of new features should start with "feat: ",
fixes with "fix: ", refactorings with "refactor: " and tests with
"test: ".
.. _eldev: https://github.com/emacs-eldev/eldev
Documentation contributions
---------------------------
You don't need to be a developer to contribute! Contribution to the
documentation or code comments are very welcome. Please open a `Pull
Request`_ with your proposed modifications. To follow `Conventional
Commits 1.0.0 `_, the
commit message should start with "docs: "
The documentation is written in reStructuredText. You'll need to
install `Sphinx `_ to build it:
.. code-block:: bash
python3 -m venv venv
. venv/bin/activate # or activate.fish on fish
pip3 install -r docs/requirements.txt
Then run :command:`eldev html` to build the documentation.
.. _Pull Request: https://github.com/szermatt/mistty/pulls