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