Migrating my build.zig.zon to 0.14.0 needs the name to be an enum literal?

While migrating my project to 0.14.0, I found I need to change my package name say, “aaa” into .aaa in build.zig.zon.
What is rationale of this change and why this is a legal syntax?
.aaa is defined no where right? But I must be missing something here.

A new package hash format was created to be more user friendly (human / machine readable).

The primary reason to restricting to enum literal (initially) is for multi-OS file system naming compatibility.

An enum literal is not a type. An enum literal is just the text .aaa. The enum literal is coerced to a type by the compiler at compile time. You can think of the build system doing comptime to make an enum of the set all the packages a project uses.

2 Likes