Annotation of wikisrc/projects/project/cvs-migration.mdwn, revision 1.12
1.1 mspo 1: [[!template id=project
2:
3: title="CVS Migration for NetBSD repos"
4:
5: contact="""
6: [tech-repository](mailto:tech-repository@netbsd.org)
7: """
8:
9: category="misc"
10: difficulty="hard"
11:
12: description="""
1.8 wiki 13:
14: ###background and description
15: NetBSD is one of the first projects to use internet-available source control.
16: It has been using CVS since the very beginning of the project (over 21 years)
17: and the repository is vast.
18:
19: NetBSD also hosts the pkgsrc repository which has many small files, many
20: "imports" and other technical challenges associated with VCS.
21:
22: NetBSD also has various small internal repositories (like this wiki).
23:
1.9 wiki 24: During the last twenty years tooling has improved and popular developer culture
1.8 wiki 25: has shifted to new workflows.
26:
27: The purpose of this project is to identify:
28:
29: * existing 'workflows' in common use among developers
30: * (example): [[dholland/hgnb]]
31: * existing 'tooling' within NetBSD the organization
32: * how much memory/disk is required to host NetBSD?
33: * how are backups performed?
34: * can the tools be cross-build?
35: * security requirements like
36: * how do we validate commits?
37: * how do we ensure commits originated from developers?
38: * release engineering requirements such as
39: * how does a pullup request work?
40: * how do we ensure the correct files are included in the correct release branches?
41: * how do we checkout a release branch
42: * how do we look at the history of a release branch
43: * how do we get different revisions of a file on a branch
44:
45: major parts of the technical work like "how to convert FROM CVS to git/hg/fossil"
46: has already been done, which is why we are able to now ask "how would the project
47: continue to function?"
48:
49:
50: ### Our decision matters
1.7 schmonz 51:
52: You're reading this because you care about the future of NetBSD and
53: you understand that good tools act as a force multiplier.
54:
1.8 wiki 55: ### Our decision is not obvious
1.7 schmonz 56:
57: If it were, we'd have made it already (and wouldn't be disagreeing
58: so persistently about which one it needs to be ;-).
59:
1.8 wiki 60: ### Our decision needs to be about the whole elephant
1.7 schmonz 61:
62: We all understand the basics of using source control. This level
63: of understanding is necessary but not sufficient to make an informed
64: decision about whether to migrate any or all of NetBSD's repositories
65: to another VCS, and if so which, or how.
66:
67: Our choice of VCS carries implications not only about how developers
68: hack on NetBSD, but also about how non-developers contribute and
69: become developers, and how Project sysadmins keep our valuable code
70: secure. Therefore, any choice of VCS other than the default (sticking
71: with CVS for a while longer) necessarily implies that as a group,
72: we all need to learn how we're going to do what we expect to need
73: to do. Not all of this learning needs to happen before we can make
74: a reasonably confident decision for our Project. But if we want to
75: arrive at consensus, much of it does.
76:
77: There is no available choice of VCS that entirely avoids tradeoffs
78: for us. Therefore, to choose intelligently, we must first consider
79: all the tradeoffs we can think of, then decide which ones we can
1.10 jnemeth 80: live with and which we can not.
1.7 schmonz 81:
1.8 wiki 82: ### Our decision needs to be made together
1.7 schmonz 83:
84: We're a community. The only way a complicated, interconnected set
85: of changes like this can be implemented is for us to arrive at rough
86: consensus that some particular VCS:
87:
88: - is sufficiently well suited to our project's needs in theory,
89: - is sufficiently easily adapted to our needs in practice,
90: - has a sufficiently fail-safe migration plan,
91: - is worth the effort to switch, and
92: - has volunteers to do the work.
93:
1.8 wiki 94: ### How you can help, right now
1.7 schmonz 95:
96: What are some considerations you think are important? Are they
97: listed here? If not, edit this page and add them.
98:
1.8 wiki 99: ### Considerations
1.7 schmonz 100:
1.8 wiki 101: Humans
1.7 schmonz 102:
1.8 wiki 103: * People who administer Project resources
1.10 jnemeth 104: * People who administer release branches
1.11 schmonz 105: * People who administer security updates
1.8 wiki 106: * People who can commit directly to NetBSD
107: * People who can't commit directly to NetBSD
1.7 schmonz 108:
1.12 ! wiki 109: Machines
! 110:
! 111: * Some ports/machines are memory constraint or rather slow (by todays standards), a VCS different than CVS should be able to used on these machines as well.
! 112: (e.g. git has parameters to tune memory usage, and there exists git-cvsserver which allows a git repository to be accessed using a CVS client)
1.1 mspo 113:
114:
115: """
116: ]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb