Skip to content

The plan for watchfiles, née watchgod #102

@samuelcolvin

Description

@samuelcolvin

This issue replaces #25 and #96 as my plan has change significantly.

I've wanted to rename watchgod for a while, I've also wanted to migrate from file scanning/polling to a rust based file system notification backend. Instead of doing that as two separate (disruptive) steps, I'm going to do them together.

TL;DR; watchgod is being renamed to watchfiles and rewritten in rust. watchgod will remain available in pypi (with a message about migrating).

  • watchgod will remain unchanged with the file scanning python code
  • watchfiles will use the new rust backend from it's first release

See this thread for a discussion of the arguments, merits & drawbacks of both renaming packages, and the name "watchgod".

I wanted a new name that was fairly close to the current name (still had the "watch" idea) but wasn't as easily confused. I originally thought about "watchman", but there's already a package by that name maintained by facebook. @thornycrackers was kind enough to release the name watchfiles in pypi so I could use it for this package. Big thanks to @thornycrackers for being so responsive and generous. I've uploaded a holding package to secure that name.

The process for switching will be roughly as follows (see the twitter thread above for a discussion of how to go about this):

  1. Rename in the codebase, effectively *.replace('god', 'files'), include a notice in the readme about the "old" name
  2. Rename the github repo
  3. release the new codebase to pypi under the name watchfiles, version will be v0.10 to avoid confusion with watchgod versions
  4. release a version of watchgod with a prominent notice in the readme about the new name and migration, add the Development Status :: 7 - Inactive pypi classifier
  5. Perhaps in future release a final version of watchgod with:
  • deprecation warnings on the main public functions explaining about the renaming
  • if this gets approved before the release, add a pip announcement

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions