Complete initial planning for Q1 and Q2 of 2023
I'm trying to make sure we have a plausible estimate for when our onion service work will be done. To that end, I've been trying to refine all of the tickets in this deliverable based on the API analysis.
To estimate the work needed, I'm using these techniques in a spreadsheet in nextcloud; see the sheet titled "Estimations 1.2.0 Onion Service". I'll copy this information somewhere public once it's finalized. I need to solicit feedback from the rest of the team, and from domain experts like @dgoulet.
In order to get the plan correct, I'll need to know what else we are working on in Q1 and Q2. I'll paste my thoughts below for reference:
Here are some things which we hope to do in Arti in 2023 which I believe do not have to happen in Q1 and Q2. But please let me know if I am wrong!
- UDP client support
- Conflux
- Improved RTT congestion control+flow control from prop 324
- Fragmented and packed cells from prop 340
- Circuit padding support, including padding machines
- Ntor3 negotiation handshake
Here are tickets currently in the onion services milestone that I think we should move out of it.
- #724 (closed) - Dropmark analysis and resistence (belongs in sponsor 112, I think)
- #361 - KIST or KIST-lite (can move to Relay work in the future)
- #504 - relay selection refactoring
Here is some stuff that I think we should consider doing that is not currently in the Onion Services milestone:
-
#682 improving unit test coverage
- #702 improving tor-ptmgr coverage
(Pro/con: test coverage is how we make our code safe to maintain. Though I guess we can defer and add more tests when we revisit the code to be changed.)
-
#687 (closed) relaunching dead pluggable transports
(Rationale: This actually affects users... if PTs sometimes die unannounced. But does that happen?)
-
Making our API less prone to break in the future
(Rationale: we want to offer a real stable API in 1.0.0, and trying to enforce that manually is Really Hard.)
-
Prototyping FFI/RPC implementations
(Rationale: this needs early feedback from integrators.)
-
What else?
Here's what we need to do in order to get this wrapped up in a tight little bundle:
-
Look over the estimates on the spreadsheet, and make sure that they seem realistic. @ahf @dgoulet @Diziet @eta @mikeperry -
Look over the scope guesses in the section above, and make sure that they seem realistic, and nothing additional is planned to be included or done during the Q1/Q2 timeframe. @ahf @Diziet @eta @gaba @micah @mikeperry -
Estimate whatever work we are scheduling in parallel @nickm -
Assess working days available over next 6-8 months. @ahf -
Do all the math @ahf @nickm -
Copy the info onto gitlab @nickm
-
@eta @nickm @Diziet Look over all tickets assigned to you in Backlog, Next, or Doing. Make sure they have Q1, or defer them (by putting them in Icebox or Roadmap::Future as appropriate). -
@eta @nickm @Diziet Look over all tickets assigned to you in Q1 Q2 Q3 or Q4. Remove them if you won't do them in that quarter. Give them rough estimates if you're keeping them.