v0.15.0

sherlock-project/sherlockv0.15.0Jul 8, 2024by ppfeister

AI Summary

This major release makes Sherlock available on official package platforms (PyPI, DockerHub, Fedora, Homebrew), rewrites unit testing with pytest/tox, and introduces breaking changes including module renaming and Tor feature deprecation.

Key Highlights

  • Official packages now available on PyPI and DockerHub
  • Community packages on Fedora and Homebrew
  • Module renamed from sherlock to sherlock_project
  • torrequest made optional (--tor and --unique-tor deprecated)
  • Unit testing rewritten with pytest and tox

Breaking Changes

  • Module renamed from sherlock to sherlock_project
  • --tor and --unique-tor flags deprecated (torrequest made optional)
  • Deprecated support for Python 3.6 and 3.7 (now requires Python 3.8+)

New Features

  • PyPI package (official)
  • DockerHub image (official)
  • Fedora package (official)
  • Homebrew package (community)
  • New Sherlock wiki at sherlockproject.xyz
  • --dump-response flag for debugging
  • Adopted Poetry as build system
  • Manifest now uses schema for validation
  • Detection mechanism for legacy/unsupported running methods

Full Release Notes

## What's Changed

- 📦 Official package now available on [__PyPI__][ext-pypi] (#2127) @ppfeister
- 📦 Official package now available on [__DockerHub__][ext-dockerhub] (#2216) @ppfeister
- 📦 Official package now available on [__Fedora__][ext-fedora] @ppfeister
- 📦 Community package now available on [__Homebrew__][ext-homebrew] @p-linnane
- ✨ New Sherlock wiki at [__sherlockproject.xyz__][ext-wiki] @sdushantha 
- ✨ --dump-response flag added for easier debugging (#2214) @ppfeister
- 🪲 Fixed uncaught exception when tor browser not found (#2033) @joaomfbh
- 🪲 ‼️ Importable module renamed from sherlock to sherlock_project [__[details]__][ext-deb1072733] @ppfeister
- 🛠️ Adopted Poetry and restructured as a true package @mjsir911 @ppfeister @matheusfelipeog @sdushantha
- 🛠️ Unit testing rewritten to better support contributors and packagers @ppfeister
  - Switched from unittest to pytest and tox
  - Expanded regression testing to include builds on Windows and MacOS
  - Added offline-only test environments for packagers (see below)
- 🛠️ Manifest now uses schema for better regression testing and in-IDE UX (#2212) @ppfeister
- 🛠️ Added detection mechanism for users running via legacy/unsupported methods (#2213) @ppfeister
- 🛠️ ‼️ Dependency [__torrequest__][ext-torrequest] made optional (#2215) @ppfeister @matheusfelipeog 
  - --tor and --unique-tor are now DEPRECATED (see detail below)
- 🛠️ ‼️ Deprecated support for Python 3.6 and 3.7 (now ^3.8)
- 🛠️ Several minor UX improvements over the course of development
- 🏷️ Adopted properly tagged releases help out our downstream packagers
- ✍️ General improvements to and simplification of in-repo documentation

Manifest contributors this cycle: @RahalBhupathi @abhirai7 @pandyah5 @roxerj @Wicloz @slavran 

[__[full changelog]__][release-diff]

___

#### ‼️ Tor deprecation detail

`--tor` and `--unique-tor` are now deprecated, and both are up for possible removal in a future release (#2200). Users who need time to adapt to this change can install the now-optional dependency [__torrequest__][ext-torrequest]. If Sherlock has been installed via pip, `pip install 'sherlock-project[tor]'` will include the necessary extras

Since torrequest is simply _not available_ as an rpm, those options have already been patched out of the Fedora release.

___

#### 📦 Packaging info

Many packages are required to be built entirely offline, as with the official Fedora release and the upcoming community-supported Debian release. Sherlock's unit tests generally require an internet connection, but with the adoption of tox and pytest, we've added offline-only test modes.

`tox -e offline` is the preferred offline-only test method, with `pytest -m "not online"` also being supported out of the box. Reference @ppfeister's [__spec file__][ext-rpm-spec] for an example of fully-offline unit testing with tox.

[release-diff]: https://github.com/sherlock-project/sherlock/compare/v0.14.4...v0.15.0

[ext-pypi]: https://pypi.org/project/sherlock-project/
[ext-dockerhub]: https://hub.docker.com/r/sherlock/sherlock
[ext-fedora]: https://src.fedoraproject.org/rpms/sherlock-project/
[ext-homebrew]: https://formulae.brew.sh/formula/sherlock

[ext-wiki]: https://sherlockproject.xyz
[ext-wiki-install]: https://sherlockproject.xyz/installation

[ext-rpm-spec]: https://src.fedoraproject.org/rpms/sherlock-project/blob/rawhide/f/sherlock-project.spec

[ext-torrequest]: https://pypi.org/project/torrequest/

[ext-deb1072733]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072733