Package.json dhidi ya go.mod: Ilikuwa wapi field ya toleo?

Ukihamia kutoka JavaScript kwenda Go, jambo moja litakushangaza.

Fungua faili la package.json. Utaona field ya toleo (version field) juu kabisa. Ni rahisi kusoma. Unaweza kuibadilisha kwenye pull request. Inapatikana ndani ya kodi yako.

Sasa fungua faili la go.mod.

Toleo halipo hapo. Hii siyo makosa. Ni chaguo.

Go haitumii field ya toleo kwa ajili ya module yako mwenyewe. Badala yake, inatumia git tags.

Jinsi inavyofanya kazi: • Unatekeleza git tag v1.2.3 • Unatuma tag hiyo kwenye repository yako • Tag hiyo inakuwa toleo lako

Mtu anapokimbiza go get, Go huangalia git tags zako ili kupata commit sahihi. Tag hiyo ndiyo chanzo pekee cha ukweli (single source of truth).

Muundo huu una nguvu kubwa. Toleo haliwezi kamwe kuashiria kodi isiyo sahihi. Katika npm, kodi iliyochapishwa na field ya toleo