Migrating from older versions#
First of all, thank you for being a long time user of organize!
I tried to keep the amount of breaking changes small but could not avoid them completely. Feel free to pin organize whatever version you need, but then you're missing the party.
Please open a issue on Github if you need help migrating your config file!
Migrating from v2 to v3#
Locations#
In organize v3 remote filesystems are no longer supported. You have to remove all
filesystem parameters from your config and cannot longer use pyfilesystem URLs
your location.
Placeholders#
- Use 
{now()}instead of{now}. - Use 
{utcnow()}instead of{utcnow}. - The placeholders 
{fs}and{fs_path}are no longer available. 
Command line interface#
The command line interface changed quite a bit! Update any scripts using the CLI to the new options:
organize check --debugbecomesorganize debugorganize revealbecomesorganize show --revealorganize reveal --pathbecomesorganize show --pathorganize schemais not longer supported.- The already deprecated 
--config-fileoption is now removed. 
That's it. If you encounter any other bugs or problems during the migration, please reach out!
Migrating from v1 to v2#
Folders#
Folders have become Locations in organize v2.
foldersmust be renamed tolocationsin your config.- REMOVED: The glob syntax (
/Docs/**/*.png). See Location options. - REMOVED: The exclamation mark exclude syntax (
! ~/Desktop/exclude). See Location options. - All keys (filter names, action names, option names) now must be lowercase.
 
Placeholders#
organize v2 uses the Jinja template engine. You may need to change some of your placeholders.
{basedir}is no longer available.- You have to replace undocumented placeholders like this:
 
"{created.year}-{created.month:02}-{created.day:02}"
With this:
"{created.strftime('%Y-%m-%d')}"
If you need to left pad other numbers you can now use the following syntax:
"{'%02d' % your_variable}"
# or
"{ '{:02}'.format(your_variable) }"
Filters#
filenameis renamed toname.filesizeis renamed tosize.createdno longer accepts a timezone and uses the local timezone by default.lastmodifiedno longer accepts a timezone and uses the local timezone by default.extensionlowerandupperare now functions and must be called like this:"{extension.upper()}"and"{extension.lower()}".
Actions#
The copy, move and rename actions got a whole lot more powerful. You now have several conflict options and can specify exactly how a file should be renamed in case of a conflict.
This means you might need to change your config to use the new parameters.
copyarguments changed to support conflict resolution options.movearguments changed to support conflict resolution options.renamearguments changed to support conflict resolution options.
Example:
rules:
  - folders: ~/Desktop
    filters:
      - extension: pdf
    actions:
      - move:
          dest: ~/Documents/PDFs/
          overwrite: false
          counter_seperator: "-"
becomes (organize v2):
rules:
  - locations: ~/Desktop
    filters:
      - extension: pdf
    actions:
      - move:
          dest: ~/Documents/PDFs/
          on_conflict: rename_new
          rename_template: "{name}-{counter}{extension}"
If you used move, copy or rename without arguments, nothing changes for you.
Settings#
The system_files setting has been removed. In order to include system files in your
search, overwrite the default system_exclude_files
with an empty list:
rules:
  - locations:
      - path: ~/Desktop/
        system_exclude_files: []
        system_exclude_dirs: []
    filters:
      - name: .DS_Store
    actions:
      - trash
That's it. Again, feel free to open a issue if you have trouble migrating your config.