Skip to content

Commit 4084de1

Browse files
committed
Move phase 2 and phase 3 to "future work"
And reworks the budget section.
1 parent 78cf7e3 commit 4084de1

File tree

1 file changed

+30
-53
lines changed

1 file changed

+30
-53
lines changed

proposals/0000-midstream-bindists.md

Lines changed: 30 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -150,20 +150,7 @@ idea how to achieve that.
150150

151151
## Technical Content
152152

153-
We propose here to create a joint project of "installation experience" developers to get funding and maintain
154-
all tooling bindists centrally and autonomically.
155-
156-
This will allow:
157-
158-
* greater quality assurance
159-
* good platform support, we want to support at least these consistently:
160-
* more bindists for uncommon linux distros
161-
* continuously updated and maintained bindists (including historical GHC versions)
162-
* actually working nightlies
163-
164-
### Phase 1
165-
166-
In Phase 1 we will build the entire Haskell toolchain autonomically.
153+
We propose here to start with the smallest step possible, to build the entire Haskell toolchain autonomically.
167154
The way this will be implemented is to start a central GitHub repository that builds bindists for releases of:
168155

169156
- GHC
@@ -197,9 +184,17 @@ For the following Linux x86_64 distros:
197184

198185
Linux i386, armv7 and aarch64 will be confined to Debian or Ubuntu.
199186

200-
### Phase 2
187+
These private runners will be made available to the whole Haskell GitHub org and as such benefit
188+
other projects there as well (like HLS, Cabal, bytestring, etc.).
189+
190+
## Future work
191+
192+
The following ideas and goals are outside of the scope of this proposal, but are essential
193+
to understand the broader mission and roadmap that motivated this proposal.
201194

202-
In Phase 2 we want to:
195+
### Enhancements to bindist quality and installation experience
196+
197+
Further goals are:
203198

204199
* enhance the quality of the bindists by
205200
- running the entire test suite for all of the tools
@@ -225,56 +220,38 @@ this type of feedback. Early release candidates can assist with this workflow.
225220
Another perception shift necessary is that upstream projects should consider that their build system
226221
are end-user interfaces, making it easier for both distributors and end-user to build release binaries correctly themselves.
227222

228-
### Phase 3
223+
### Nightlies
229224

230-
In phase 3, we will mainly focus on making nightlies available for GHC and cabal. This will require
225+
We also want to make nightlies available for GHC and cabal and HLS. This will require
231226
coming up with a permanent storage solution and very robust nightly pipelines.
232227

233-
HLS nightlies may be added as well.
234-
235228
## Timeline
236229

237-
* phase 1 (6 months): proof of concept of a central GitHub CI building the entire toolchain
238-
* phase 2 (9 months): bindist testing workflow, automated integration with GHCup, etc.
239-
* phase 3 (12+ months): nightlies working for GHC and cabal and maybe HLS
230+
* 6 months: proof of concept of a central GitHub CI building most of the toolchain
231+
* 12 months: building GHC via github actions
240232

241233
## Budget
242234

243-
We would like to have a full-time developer work on this, at least partly. But at the moment,
244-
we don't have anyone to propose and hiring an external contractor for this role may or may not
245-
be helpful, since this requires significant DevX experience and commitment to the specified goals.
246-
247-
As such, we propose the "phase 1" of this proposal that focuses on advancing the existing GitHub CI
248-
support for the GitHub Haskell organization, spearheaded by @angerman (providing aarch64 linux and
249-
darwin M1 self-hosted machines). This infrastructure is already used by GHCup, HLS and other projects
250-
and needs more runners.
251-
252-
Github actions at the moment does not provide all platforms. So the budget proposal to close the platform gap on GitHub actions is as follows (all prices in USD):
253-
254-
- FreeBSD x86_64 private runner on [vultr](https://www.vultr.com/pricing/), utilizing [github-act-runner](https://github.com/ChristopherHX/github-act-runner), instance with 8vCPU, 16 GB Memory, 150GB storage
255-
* monthly: $160
256-
* yearly: $1,920
257-
- Linux aarch64 private runner on [AWS](https://aws.amazon.com/marketplace/pp/prodview-uzg6o44ep3ugw) (m6g.xlarge instance)
258-
* hourly: $0.154
259-
* monthly: $112.5
260-
* yearly: $1,350
261-
- Darwin M1 private runner on [macstadium](https://www.macstadium.com/pricing), instance with M1 8 Core, 16 GB Memory, 1 TB SSD
262-
* monthly: $179
263-
* yearly: $2,148
235+
We request funding for private GitHub CI runners to power our midstream bindist release pipelines. Prices are in USD.
236+
This is an example/estimate. The HF and the proposer will negotiate the exact terms in private.
264237

265-
To host one additional private runner per all these platform, the yearly cost would be: **$5,418**
238+
- Linux/FreeBSD x86_64 runner on Hetzner (AX52)
239+
* monthly: $62.24
240+
* yearly: $746.88
241+
- Linux aarch64 runner on Hetzner (RX170)
242+
* monthly: $181.73
243+
* yearly: $2,180.76
244+
- Darwin runner on Hetzner (Mac Mini M1)
245+
* monthly: $56.59
246+
* yearly: $679.08
266247

267-
We may request more runners depending on the demand, so it may very well be 3 runners per platform, resulting in yearly cost of: $16,254
248+
To host one private runner per all these platform, the yearly cost would be: **$3,606.72**
268249

269-
For FreeBSD it is also possible to buy [Cirrus CI compute credits](https://cirrus-ci.org/pricing/#compute-credits),
270-
which amount to a similar value of: $1,576.8
250+
There will likely also be an initial setup cost (as is usual for Hetzner).
271251

272-
As such, we estimate the cost for phase 1 to be between 5000 to 16000 USD. The benefit of this investment is not confined to
273-
the midstream bindist proposal, but to the entirety of the GitHub Haskell organization CI infrastructure
274-
(including GHCup, HLS, Cabal, bytestring, text, unix, ...).
252+
We may request more runners depending on the demand, so it may very well be 3 runners per platform, resulting in yearly cost of: $10,820.16
275253

276-
Phase 2 and 3 may need follow-up proposals with more concrete implementation strategy, cost analysis
277-
and potentially hiring a full-time employee.
254+
**As such, the budget estimated is between 4 to 10k USD per year.**
278255

279256
## Stakeholders
280257

0 commit comments

Comments
 (0)