{ "info": { "author": "Saman Tehrani", "author_email": "samanrtehrani@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# Development guide\n\n\n## Install\n\nCurrently py27 is the only supported python version. It is recommended that you install this tool within a fresh virtual environment. More info on https://virtualenv.pypa.io/en/stable/userguide/.\n\n```shell\n> cd ${repo_root}\n> ${envpip} install -r requirements.txt -r requirements_${darwin/linux}.txt\n> ${envpip} install .\n```\n\nPackage depends on `libsodium`. Make sure to install:\n```shell\n> brew install libsodium # macos\n> apt-get install libsodium-dev # linux\n```\n\n## Testing\n\nWe use [tox](https://tox.readthedocs.io/en/latest/index.html) as the project's test runner. Make sure you have **tox >= 3.5.3** installed in your python environment.\n\n#### Run all tests\n\n```shell\n> cd ${repo_core}\n> tox\n```\n\n\n\n#### Unit tests\n\n```shell\n> tox -e unit-${darwin/linux}\n```\n\n\n\n#### Integration tests\n\n```shell\n> tox -e integration-${darwin/linux}\n```\n\n\n\n## Linting\n\nWe use [flake8](http://flake8.pycqa.org/en/latest/) as project's linter. Enforcement via:\n\n```shell\n> tox -e flake8\n```\n\n\n## Some helper CLIs through make\nThere are some handy make commands that you can use. Check out usage:\n\n```shell\n> cd ${repo-root}\n> make\nUSAGE:\n> make [\n\tbuild: build python package\n\tunit-test: run unit tests with tox\n\tintegration-test: run integration tests with tox\n\ttest: run all tests\n\tlint: run flake8 linter with tox\n\n\tdocker-build: build python package in a linux container\n\tdocker-unit-test: run unit tests with tox in a linux container\n\tdocker-integration-test: run integration tests with tox in a linux container\n\tdocker-test: run all tests in a linux container\n\tdocker-build-runtime: build docker image `relay:${VERSION}` that has installed mail-relay pacakge pulled from pypi\n\tshell: get interactive shell to builder/tester container\n\n\tclean: ...\n\n\tpublish-pypi: publish package on pypi\n\tpublish-docker-hub: publish image on docker hub\n\trelease: manage release on github, publish on pypi as well as docker hub\n]\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/samantehrani/mail-relay", "keywords": "", "license": "GNU General Public License v3.0", "maintainer": "", "maintainer_email": "", "name": "mail-relay", "package_url": "https://pypi.org/project/mail-relay/", "platform": "", "project_url": "https://pypi.org/project/mail-relay/", "project_urls": { "Homepage": "https://github.com/samantehrani/mail-relay" }, "release_url": "https://pypi.org/project/mail-relay/0.1.16/", "requires_dist": null, "requires_python": ">=2.7", "summary": "Just a tool to relay incoming emails over to other mail servers", "version": "0.1.16", "yanked": false, "yanked_reason": null }, "last_serial": 6181821, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "93a72bf916c0d402bd5c8bb263d25567", "sha256": "ea1e376f6492886da5b92346b7c51118fab02fdfa97cd2f8af23e5ede6e7a6c8" }, "downloads": -1, "filename": "mail_relay-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "93a72bf916c0d402bd5c8bb263d25567", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31181, "upload_time": "2019-10-22T23:00:25", "upload_time_iso_8601": "2019-10-22T23:00:25.398030Z", "url": "https://files.pythonhosted.org/packages/ad/35/34e3b4b7172fde629700015835b65909713f412fcdbeb631509f7ff42d08/mail_relay-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5a071333edabaf5188893d1954bb9cce", "sha256": "73f5e128922ba96c8d862d9727f4c4fa24de6e22b7b4aa24f932bf181097c1d6" }, "downloads": -1, "filename": "mail-relay-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5a071333edabaf5188893d1954bb9cce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30828, "upload_time": "2019-10-22T23:00:27", "upload_time_iso_8601": "2019-10-22T23:00:27.636906Z", "url": "https://files.pythonhosted.org/packages/98/48/7d848a2400d4d5d23bc7844192dd4cb76ac17f103af57ece3a7afcf231c0/mail-relay-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1f7be7387384f6845d56cfc8fadb7b50", "sha256": "5c15700d74f9800f2fc432d2b83d928fbdde96c19a4bba0a1aa75b7a116f5226" }, "downloads": -1, "filename": "mail_relay-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f7be7387384f6845d56cfc8fadb7b50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "==2.7", "size": 31188, "upload_time": "2019-10-22T23:30:14", "upload_time_iso_8601": "2019-10-22T23:30:14.798085Z", "url": "https://files.pythonhosted.org/packages/ee/33/37710e9ebb3ed00916ecaad6417b137ecad8c49be210b2aa2a8b647c6720/mail_relay-0.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "73ffabde1f075a5b05c0398a514f7904", "sha256": "bd99dfabf430fe2e3c1a04ed9eae907bc69f61b947e78a2b60a26c75fc3fda90" }, "downloads": -1, "filename": "mail-relay-0.1.1.tar.gz", "has_sig": false, "md5_digest": "73ffabde1f075a5b05c0398a514f7904", "packagetype": "sdist", "python_version": "source", "requires_python": "==2.7", "size": 31175, "upload_time": "2019-10-22T23:30:16", "upload_time_iso_8601": "2019-10-22T23:30:16.975103Z", "url": "https://files.pythonhosted.org/packages/1b/3b/aef03808c705babed80e5b881cabd4ba291d49bf7a1312795ac835ccaa41/mail-relay-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "dfb30a5dae4576e2106a2bef177811fe", "sha256": "fe9efd3575005d67af736591fa70115ae76c263dfd163146999fa5f9bca8b5ba" }, "downloads": -1, "filename": "mail-relay-0.1.10.tar.gz", "has_sig": false, "md5_digest": "dfb30a5dae4576e2106a2bef177811fe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 50685, "upload_time": "2019-11-09T18:50:01", "upload_time_iso_8601": "2019-11-09T18:50:01.526434Z", "url": "https://files.pythonhosted.org/packages/b4/84/717310a522f6ee8330e70d1c127d355d22b07a7e8e3dbb6f677cadaf1e35/mail-relay-0.1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "01904ed42bd909082fc41d03b15e96cf", "sha256": "563ca8d9dc7a8f51207c39510b34011baafdda9f37417931af85059e8b9c8b9d" }, "downloads": -1, "filename": "mail-relay-0.1.11.tar.gz", "has_sig": false, "md5_digest": "01904ed42bd909082fc41d03b15e96cf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 50785, "upload_time": "2019-11-09T19:34:58", "upload_time_iso_8601": "2019-11-09T19:34:58.427766Z", "url": "https://files.pythonhosted.org/packages/5e/43/9b83d77c0b0439a9ce48aa3156780d69a6dbe320e0d15c006da1ad6de81f/mail-relay-0.1.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "7a9d7328ca2a15ff8d0c61ee42df40da", "sha256": "396c64d91f7108900b346c916229e759268b4f7234de606723b9f7efd6d24e4a" }, "downloads": -1, "filename": "mail-relay-0.1.12.tar.gz", "has_sig": false, "md5_digest": "7a9d7328ca2a15ff8d0c61ee42df40da", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 50793, "upload_time": "2019-11-09T19:44:52", "upload_time_iso_8601": "2019-11-09T19:44:52.372323Z", "url": "https://files.pythonhosted.org/packages/68/4b/301c8011e443a79e44f6333599a6c75ab5fe0d4265201939e928657aab48/mail-relay-0.1.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "b168b703da1cc082fde8dd6f913c151b", "sha256": "2649e7084a181d1046d0cf94257f0591a817449d2888d2462dd2c2c196218522" }, "downloads": -1, "filename": "mail-relay-0.1.13.tar.gz", "has_sig": false, "md5_digest": "b168b703da1cc082fde8dd6f913c151b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 52039, "upload_time": "2019-11-15T18:53:52", "upload_time_iso_8601": "2019-11-15T18:53:52.009915Z", "url": "https://files.pythonhosted.org/packages/be/62/35c5b4aab11366c245f7436b27af00d52d61cf5c9657c9d582e5586ca3c6/mail-relay-0.1.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "c063a0047fbdca3def1f175941e4438f", "sha256": "783f734df80ac26730ff904d47c99bbdb325891acfc87ba245584a487c80c60e" }, "downloads": -1, "filename": "mail-relay-0.1.14.tar.gz", "has_sig": false, "md5_digest": "c063a0047fbdca3def1f175941e4438f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 51601, "upload_time": "2019-11-15T22:13:59", "upload_time_iso_8601": "2019-11-15T22:13:59.551223Z", "url": "https://files.pythonhosted.org/packages/d2/5a/89889eeaf428cd6eb25df918232b3d3c88151d312b3ba558cdf188e06652/mail-relay-0.1.14.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "5fc85fce9ef047bb289d3e2b67ae5986", "sha256": "9d19acc99bc0f427075218548cb3cfaa72d5151aa17c6aaca6a113c5b82cf9c0" }, "downloads": -1, "filename": "mail-relay-0.1.15.tar.gz", "has_sig": false, "md5_digest": "5fc85fce9ef047bb289d3e2b67ae5986", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 51706, "upload_time": "2019-11-22T14:59:01", "upload_time_iso_8601": "2019-11-22T14:59:01.142421Z", "url": "https://files.pythonhosted.org/packages/eb/03/2dc7b608d94c2895fe4f777a9df32884cbf15b302104ee344e40ebc2ab54/mail-relay-0.1.15.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "865da1d3bef69a674c07bd40292f5037", "sha256": "a20b05263bdb73acf0027aae9fbcf821dd172914e080b9d686fdde203d4b9d27" }, "downloads": -1, "filename": "mail-relay-0.1.16.tar.gz", "has_sig": false, "md5_digest": "865da1d3bef69a674c07bd40292f5037", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 51814, "upload_time": "2019-11-22T15:10:32", "upload_time_iso_8601": "2019-11-22T15:10:32.431124Z", "url": "https://files.pythonhosted.org/packages/cb/b3/cd7408832414e5c5dffc63766c73fb11e73139767d8a442e669f88bc6f2a/mail-relay-0.1.16.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d973ccde2428678f7fa55276e9f3dcdc", "sha256": "71a00667b4972ee40e595b954546dfdee786432483145b1b507018e3a6e7e23e" }, "downloads": -1, "filename": "mail-relay-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d973ccde2428678f7fa55276e9f3dcdc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 31172, "upload_time": "2019-10-23T00:09:36", "upload_time_iso_8601": "2019-10-23T00:09:36.034867Z", "url": "https://files.pythonhosted.org/packages/86/44/9d65884ef80f9600f54ac69d065e49d099fa7244851994e68c561711665e/mail-relay-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "565b744e596a2986707053ad67daba65", "sha256": "523afd5e6920decd69e153910c6ff98a4cbb70163c6fc8f7eb5dd2c5d6b3bc1f" }, "downloads": -1, "filename": "mail-relay-0.1.3.tar.gz", "has_sig": false, "md5_digest": "565b744e596a2986707053ad67daba65", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 31940, "upload_time": "2019-10-24T04:59:51", "upload_time_iso_8601": "2019-10-24T04:59:51.658177Z", "url": "https://files.pythonhosted.org/packages/f0/ff/68e040f8c38038729eaa8a794565db90bddf70b463a87ac719d01eac9e13/mail-relay-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ed800d098f3c1bc38efdb889bc86b06a", "sha256": "4fdd5ad35cc2ba321c836d10f020b8bbbbff8caa510d7502c97a3bf15bf59876" }, "downloads": -1, "filename": "mail-relay-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ed800d098f3c1bc38efdb889bc86b06a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 31936, "upload_time": "2019-10-24T05:07:50", "upload_time_iso_8601": "2019-10-24T05:07:50.156168Z", "url": "https://files.pythonhosted.org/packages/f0/be/1df1d235bc0c0af997a539fe2e0d3baf79ec7f069f639077ba7b14c82797/mail-relay-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "1ff22b07ed67967a5054303d8eed27f1", "sha256": "a4d8b3678cd059b6edd3d3dbad60b983b137c47c8e6e4bb3ab176dbb98af74c0" }, "downloads": -1, "filename": "mail-relay-0.1.5.tar.gz", "has_sig": false, "md5_digest": "1ff22b07ed67967a5054303d8eed27f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 33984, "upload_time": "2019-10-24T17:36:25", "upload_time_iso_8601": "2019-10-24T17:36:25.106008Z", "url": "https://files.pythonhosted.org/packages/2b/b6/0cbe83e0f80fa59c02643a9c6b5493314435353fdb407d3f4b688f39216d/mail-relay-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "eea38fc3b1dbb955711f3dee580a1c15", "sha256": "c6303017ef11276a2ea1072c860e775e788609007bb4eb2a1cbed7a32bc7df68" }, "downloads": -1, "filename": "mail-relay-0.1.6.tar.gz", "has_sig": false, "md5_digest": "eea38fc3b1dbb955711f3dee580a1c15", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 33527, "upload_time": "2019-10-24T17:40:53", "upload_time_iso_8601": "2019-10-24T17:40:53.891348Z", "url": "https://files.pythonhosted.org/packages/d1/71/2946435b0b446c49b300c68bd2501a0b00fabcade02cdfdd8b536506e5db/mail-relay-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "8b386b3f254524d9485440022892f47c", "sha256": "f6fc9587b0f8e1845beb3296a83e029c8acf25c684b501cace942cdfe6f11eef" }, "downloads": -1, "filename": "mail-relay-0.1.7.tar.gz", "has_sig": false, "md5_digest": "8b386b3f254524d9485440022892f47c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 47020, "upload_time": "2019-11-06T21:12:09", "upload_time_iso_8601": "2019-11-06T21:12:09.285388Z", "url": "https://files.pythonhosted.org/packages/82/31/1acd3ae14d06db18258502a2afa27e024322384561d56de777fec6392dc7/mail-relay-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "a674bd395f1f1257cba7fa4213934562", "sha256": "783ea234b6e8e557a1699e2647cbc2258b2e1194901053fd571d4d69b2c66785" }, "downloads": -1, "filename": "mail-relay-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a674bd395f1f1257cba7fa4213934562", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 47019, "upload_time": "2019-11-06T21:17:42", "upload_time_iso_8601": "2019-11-06T21:17:42.060920Z", "url": "https://files.pythonhosted.org/packages/e3/29/d9b02456d62da5a5fd94ff93a6b5b22267321a91cded701c977aa3eeb901/mail-relay-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "3bafbd04c6376a73ddbbde5919829ac3", "sha256": "1893abd8619d46fec6b578d4956412734f088de5d883fd3f15823cfac9ee4047" }, "downloads": -1, "filename": "mail-relay-0.1.9.tar.gz", "has_sig": false, "md5_digest": "3bafbd04c6376a73ddbbde5919829ac3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 48039, "upload_time": "2019-11-06T21:28:00", "upload_time_iso_8601": "2019-11-06T21:28:00.988987Z", "url": "https://files.pythonhosted.org/packages/26/dd/a619f6c4d472318734e99399e4587a1d78bc2bee6120cdfc887fb8e71e17/mail-relay-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "865da1d3bef69a674c07bd40292f5037", "sha256": "a20b05263bdb73acf0027aae9fbcf821dd172914e080b9d686fdde203d4b9d27" }, "downloads": -1, "filename": "mail-relay-0.1.16.tar.gz", "has_sig": false, "md5_digest": "865da1d3bef69a674c07bd40292f5037", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 51814, "upload_time": "2019-11-22T15:10:32", "upload_time_iso_8601": "2019-11-22T15:10:32.431124Z", "url": "https://files.pythonhosted.org/packages/cb/b3/cd7408832414e5c5dffc63766c73fb11e73139767d8a442e669f88bc6f2a/mail-relay-0.1.16.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }