xref: /freebsd/contrib/bc/MAINTENANCE-TERMS.md (revision fdc4a7c8012b214986cfa2e2fb6d99731f004b1b)
1*fdc4a7c8SStefan Eßer# Maintenance Terms
2*fdc4a7c8SStefan Eßer
3*fdc4a7c8SStefan Eßer> Last Updated: 27 June 2025
4*fdc4a7c8SStefan Eßer
5*fdc4a7c8SStefan EßerThe code, text, and other materials in this repository are provided as-is under
6*fdc4a7c8SStefan Eßerthe terms of the repository's [`LICENSE.md`][0] file, as a gift to the commons
7*fdc4a7c8SStefan Eßerand the common good. In providing this software as-is, its author(s) admit no
8*fdc4a7c8SStefan Eßerfurther obligations from anyone using the software for any reason, particularly
9*fdc4a7c8SStefan Eßerwith respect to:
10*fdc4a7c8SStefan Eßer
11*fdc4a7c8SStefan Eßer* Releases,
12*fdc4a7c8SStefan Eßer* Response time,
13*fdc4a7c8SStefan Eßer* Change review and integration,
14*fdc4a7c8SStefan Eßer* Disclosure schedules,
15*fdc4a7c8SStefan Eßer* Discretionary, proprietary or otherwise secretive communications, and
16*fdc4a7c8SStefan Eßer* Any other non-contractual obligations or conventions, regardless of their
17*fdc4a7c8SStefan Eßer  presumed urgency or severity.
18*fdc4a7c8SStefan Eßer
19*fdc4a7c8SStefan EßerShould anyone wish to make a contract with me (Gavin Howard) to ensure that work
20*fdc4a7c8SStefan Eßerhe or she deems critical gets done, the terms are as follows:
21*fdc4a7c8SStefan Eßer
22*fdc4a7c8SStefan Eßer* Compute time will be charged at \$25/hr.
23*fdc4a7c8SStefan Eßer* My time will be charged at \$100/hr.
24*fdc4a7c8SStefan Eßer* All issues deemed critical by either me or the requester, that also change the
25*fdc4a7c8SStefan Eßer  source code (anything in `gen`, `include`, or `src`) will require at least two
26*fdc4a7c8SStefan Eßer  weeks of fuzzing without error.
27*fdc4a7c8SStefan Eßer	* If errors are found, those hours will still be charged on top of the final
28*fdc4a7c8SStefan Eßer	  two weeks.
29*fdc4a7c8SStefan Eßer* All changes will require running the [release script][2] on Linux (GCC), Linux
30*fdc4a7c8SStefan Eßer  (Clang), FreeBSD, OpenBSD, macOS, Windows.
31*fdc4a7c8SStefan Eßer* Any hours spent on bugs or code that have been, or are suspected to have been,
32*fdc4a7c8SStefan Eßer  generated by "AI" will be charged double rates.
33*fdc4a7c8SStefan Eßer
34*fdc4a7c8SStefan EßerCompute time includes, but is not limited to:
35*fdc4a7c8SStefan Eßer
36*fdc4a7c8SStefan Eßer* Fuzzing.
37*fdc4a7c8SStefan Eßer* Running my [release script][2].
38*fdc4a7c8SStefan Eßer* Running tests and my [release script][2] on macOS.
39*fdc4a7c8SStefan Eßer
40*fdc4a7c8SStefan EßerMy time includes, but is not limited to:
41*fdc4a7c8SStefan Eßer
42*fdc4a7c8SStefan Eßer* Code review.
43*fdc4a7c8SStefan Eßer* Reading bug reports.
44*fdc4a7c8SStefan Eßer* Design.
45*fdc4a7c8SStefan Eßer* Coding.
46*fdc4a7c8SStefan Eßer* Any compute time that interferes with my ability to do any other work:
47*fdc4a7c8SStefan Eßer	* Fuzzing makes my computer unusable, so fuzzing for the 8-12 hours of the
48*fdc4a7c8SStefan Eßer	  day that I could be working will be charged at \$100/hr.
49*fdc4a7c8SStefan Eßer	* Same with running my [release script][2] because I run two instances on my
50*fdc4a7c8SStefan Eßer	  machine and two in VMs at the same time.
51*fdc4a7c8SStefan Eßer	* Running my [release script][2] or any other compute time on Windows
52*fdc4a7c8SStefan Eßer	  because Windows blocks me from doing my main work on Linux.
53*fdc4a7c8SStefan Eßer	* Any other instances of blocking compute time.
54*fdc4a7c8SStefan Eßer
55*fdc4a7c8SStefan EßerAll amounts will be billed by, and paid to, [Yzena, LLC][2]. Invoices will be
56*fdc4a7c8SStefan Eßerprovided, including line items for what each hour was spent on.
57*fdc4a7c8SStefan Eßer
58*fdc4a7c8SStefan EßerIt is suggested that the following amounts be budgeted:
59*fdc4a7c8SStefan Eßer
60*fdc4a7c8SStefan Eßer* At least \$3000 for a non-critical issue or change.
61*fdc4a7c8SStefan Eßer
62*fdc4a7c8SStefan Eßer  The release script takes about 10 hours, and I would need to run it once on
63*fdc4a7c8SStefan Eßer  Linux (and others at the same time) and once on Windows, which is 20 hours.
64*fdc4a7c8SStefan Eßer  Most of that won't be at the \$100/hr rate, but some probably will be. Then
65*fdc4a7c8SStefan Eßer  an extra \$1000 for other work.
66*fdc4a7c8SStefan Eßer
67*fdc4a7c8SStefan Eßer* At least \$15,000 for a critical issue or change.
68*fdc4a7c8SStefan Eßer
69*fdc4a7c8SStefan Eßer  The \$3000 above is the start, which leaves \$12,000. Fuzzing is expected to
70*fdc4a7c8SStefan Eßer  cost \$11,400 (6 days a week, 8 hours a day, at \$100, the rest at \$25), and
71*fdc4a7c8SStefan Eßer  rounded up to \$12,000 for good measure.
72*fdc4a7c8SStefan Eßer
73*fdc4a7c8SStefan Eßer---
74*fdc4a7c8SStefan Eßer
75*fdc4a7c8SStefan EßerThis document is inspired by [Mike Hoye's Maintenance Terms][1].
76*fdc4a7c8SStefan Eßer
77*fdc4a7c8SStefan Eßer[0]: LICENSE.md
78*fdc4a7c8SStefan Eßer[1]: https://github.com/mhoye/maintenance-terms
79*fdc4a7c8SStefan Eßer[2]: scripts/release.sh
80*fdc4a7c8SStefan Eßer[3]: https://yzena.com/
81