# Submitting a patch
- Commits must always have vocabulary names prefixed to them. The commit history has many good examples of this.
-- All contributions to Factor are mandatorily under the [BSD license](LICENSE.txt). In new vocabularies, you must add a comment stating the same. You can use your real name or your GitHub nickname. See [this](https://github.com/factor/factor/blob/master/core/alien/alien.factor) for an example.
+- All contributions to Factor are mandatorily under the [BSD license](LICENSE.txt). In new vocabularies, you must add a comment stating the same. You can use your real name or your GitHub nickname.
+ See [this](https://github.com/factor/factor/blob/master/core/alien/alien.factor) for an example.
+ - If you are fixing a bug, then you can add your name to the copyright section of the vocabulary, adding the current year if necessary.
+ - If you make substantial changes and want to be included in bugfixes and future direction for the vocabulary, add you name to the vocabulary's AUTHORS.txt as well.
- Do not submit features without creating a feature request first.
- The repository is structured as follows:
- - `basis`: Vocabularies which are well-tested, well-documented, and have a wide variety of uses.
+ - `basis`: Vocabularies which are well-tested, well-documented, and have a wide variety of uses in Factor code.
- `core`: The set of libraries which are most integral for compiling and bootstrapping Factor. **Do not modify core unless it is absolutely necessary.** You will need to re-bootstrap to check your changes.
- - `extra`: Vocabularies which are in beta. May be unstable or broken. This is where most contributions start.
+ - `extra`: Vocabularies which are in beta, or do not necessarily belong in the other vocabularies.
+ - These vocabularies may be unstable or broken.
+ - Most new vocabulary contributions start.
+ - Notably, `extra/webapps` contains the code for the [Concatenative Wiki](https://concatenative.org), [Factor pastebin](https://paste.factorcode.org),
+ [Planet Factor](https://planet.factorcode.org) and many others. You can contribute to them from here.
- `misc`: Code which is not written in Factor, but holds significance to Factor users. Some editor-specific plugins reside here.
- `vm`: Factor C++ VM files.
- `work`: Store your personal work here. You cannot contribute changes made to work, as it is reserved for the user.