Issues Closed
* [Issue 37](https://github.com/spyder-ide/spyder-terminal/issues/37) - Each terminal should be numbered sequentially
* [Issue 34](https://github.com/spyder-ide/spyder-terminal/issues/34) - Terminals should use user-defined fonts
* [Issue 32](https://github.com/spyder-ide/spyder-terminal/issues/32) - Fix text overflow when commands fill all the terminal space
* [Issue 31](https://github.com/spyder-ide/spyder-terminal/issues/31) - Prevent running this plugin if Spyder is using PyQt4
* [Issue 27](https://github.com/spyder-ide/spyder-terminal/issues/27) - Don't hard code port number
* [Issue 24](https://github.com/spyder-ide/spyder-terminal/issues/24) - Add CI Engines and Minor Tests
* [Issue 21](https://github.com/spyder-ide/spyder-terminal/issues/21) - Each terminal instance should be launched on currently opened path
* [Issue 20](https://github.com/spyder-ide/spyder-terminal/issues/20) - Create basic terminal shortcuts
* [Issue 15](https://github.com/spyder-ide/spyder-terminal/issues/15) - Server should start and end with Spyder process
* [Issue 14](https://github.com/spyder-ide/spyder-terminal/issues/14) - Extract Javascript dependencies to a bower.json file
* [Issue 12](https://github.com/spyder-ide/spyder-terminal/issues/12) - Solve security access problem
* [Issue 10](https://github.com/spyder-ide/spyder-terminal/issues/10) - Display xterm terminal inside a QWebView widget
* [Issue 6](https://github.com/spyder-ide/spyder-terminal/issues/6) - Implement basic web bash console using tornado and xterm.js
* [Issue 4](https://github.com/spyder-ide/spyder-terminal/issues/4) - Add project skeleton
* [Issue 3](https://github.com/spyder-ide/spyder-terminal/issues/3) - Write package documentation and description
In this release 15 issues were closed.
Pull Requests Merged
* [PR 40](https://github.com/spyder-ide/spyder-terminal/pull/40) - New terminals inherit Spyder current working directory
* [PR 39](https://github.com/spyder-ide/spyder-terminal/pull/39) - Server port is now variable
* [PR 38](https://github.com/spyder-ide/spyder-terminal/pull/38) - Terminal tabs naming convention is sequential
* [PR 36](https://github.com/spyder-ide/spyder-terminal/pull/36) - Plugin import is restricted to PyQt5
* [PR 35](https://github.com/spyder-ide/spyder-terminal/pull/35) - PR: Custom font loading
* [PR 33](https://github.com/spyder-ide/spyder-terminal/pull/33) - Overflow resolution
* [PR 30](https://github.com/spyder-ide/spyder-terminal/pull/30) - PR: Fix tests
* [PR 28](https://github.com/spyder-ide/spyder-terminal/pull/28) - PR: Basic test added
* [PR 26](https://github.com/spyder-ide/spyder-terminal/pull/26) - PR: Documentation and Changelog update
* [PR 25](https://github.com/spyder-ide/spyder-terminal/pull/25) - PR: Server deploys on port 8070 by default
* [PR 23](https://github.com/spyder-ide/spyder-terminal/pull/23) - PR: Added basic shortcuts and menu entries
* [PR 19](https://github.com/spyder-ide/spyder-terminal/pull/19) - Code cleanup: Removed useless font HTML examples
* [PR 18](https://github.com/spyder-ide/spyder-terminal/pull/18) - PR: setup.py now downloads bower components before installing the plugin
* [PR 17](https://github.com/spyder-ide/spyder-terminal/pull/17) - Added README screenshot
* [PR 16](https://github.com/spyder-ide/spyder-terminal/pull/16) - Server now starts and stops with Spyder process
* [PR 13](https://github.com/spyder-ide/spyder-terminal/pull/13) - Spyder IDE integration
* [PR 11](https://github.com/spyder-ide/spyder-terminal/pull/11) - PR: Terminal is now shown inside a Qt Widget
* [PR 9](https://github.com/spyder-ide/spyder-terminal/pull/9) - PR: Modified pexpect constructor orden between OSes
* [PR 8](https://github.com/spyder-ide/spyder-terminal/pull/8) - PR: Added Py3 Compatibility
* [PR 7](https://github.com/spyder-ide/spyder-terminal/pull/7) - PR: Web terminal proof-of-concept
* [PR 5](https://github.com/spyder-ide/spyder-terminal/pull/5) - Add plugin template skeleton
In this release 21 pull requests were closed.
Release
Follow the steps to release a new version of spyder-terminal
Translation updates
* Install [gettext-helpers](https://github.com/spyder-ide/gettext-helpers) from source.
* Update the `*.pot` and `*.po` translation files by following these steps:
* Run `spyder-gettext scan spyder_terminal` to update localization files.
* Create and merge a new PR with these updated files.
* Once merged, the new strings are now available on Crowdin.
* Close the current translation PR and delete the `translate/<branch-name>` branch associated with it.
* Go to the [integrations page](https://crowdin.com/project/spyder/settings#integration) on Crowdin and press `Sync now` to open a new translation PR.
* Request translators on a Github issue to update their translations on Crowdin. This can take between a couple of days to a couple of weeks depending on the amount of strings to translate. It's necessary to wait for that before proceeding to the next step.
* Checkout the translation PR and update the `*.mo` files in there by running `spyder-gettext compile spyder_terminal`.
* Squash all commits in that PR into a single one. This commit will include the `*.pot`, `*.po` and `*.mo` file changes.
* Once that's done, merge the PR to finish the process.
* Don't forget to remove your local checkout of `translate/<branch-name>` because that's going to be outdated for next time.
Release updates
* git fetch upstream && git merge upstream/master
* Close milestone on Github
* Run `check-manifest` to verify that all required files are part of the distribution.
* git clean -xfdi
* Update CHANGELOG.md with `loghub spyder-ide/spyder-terminal --milestone vX.X.X`
* git add and git commit with "Update Changelog"
* Update VERSION_INFO in `__init__.py` (set release version, remove 'dev0')
* git add and git commit with "Release x.x.x"
* python setup.py clean_components
* python setup.py build_static
* python setup.py bdist_wheel --universal
* python setup.py sdist
* twine check dist/*
* twine upload dist/*
* git tag -a vX.X.X -m 'Release x.x.x'
* Update VERSION_INFO in `__init__.py` (add 'dev0' and increment minor)
* git add and git commit
* git push upstream master
* git push upstream --tags