Set Up a Case-Sensitive APFS Volume for Development

By default, macOS uses a case insensitive filesystem; occasionally this causes problems, for example we have encountered dependency combinations involving module names that differ only by case (ModuleNotFoundError: No module named 'Crypto'), also git behaves very badly if a repository has case-differentiated files.

Fortunately, it's fairly easy to set up a case-sensitive volume and move your development work to it.

Note: any added volumes must be encryped and backed up in CrashPlan per IT policy (also, it's just good sense)

The following assumes all edx repos and development are currently in a directory called edxdev; this is not a standard, substitute as needed for your workarea.

Instructions

  • Add a "Dev" volume in Disk Utility of type “APFS (Case-Sensitive, Encrypted)”

  • Quit applications that might be using files in edxdev; Docker, VSCode, etc

  • Copy edxdev to the new volume

  • mv edxdev edxdev-old (or just rm if you're feeling lucky/foolish)

  • Add a link: ln -s /Volumes/Dev/edxdev .

  • Re-open VSCode etc., confirm that they are following the symlink (copy a file path and see that it doesn't include edxdev-old, for example)

  • Add "Dev" volume to CrashPlan:

    • Open Code42, either directly or from the menubar

    • Sign in with your OneLogin credentials if needed

    • Click "Manage Files..."

    • Above the file listing, click the name of your computer

    • Check the box for your "Dev" volume

    • Click "Save"