Skip to content

Commit ef59f3d

Browse files
authored
Merge pull request #543 from jmct/hakyll
Update SCB's Sponsorship status
2 parents 2d4d1b8 + 01eb16e commit ef59f3d

File tree

8 files changed

+109
-1
lines changed

8 files changed

+109
-1
lines changed

donations/sponsors/standard-chartered.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
title: Standard Chartered
33
logo: /assets/images/sponsors/standard-chartered/scb-logo.png
44
externalUrl: https://www.sc.com/en/
5-
level: Applicative
5+
level: Monad
66
careersUrl: https://www.sc.com/en/global-careers/
77
---
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
title: "Ecosystem Contracts: Working with Partners toward a better Haskell Ecosystem"
3+
---
4+
5+
Introduction
6+
===
7+
8+
Funding for the continued development of the Haskell Ecosystem’s tools is a core priority of the Haskell Foundation (HF).
9+
As such, we want to make supporting the Haskell Ecosystem as easy as possible for interested parties.
10+
The HF has not had the labor power necessary to accomplish this goal on its own, nor has it had the funding necessary to pay consultancies to work on these tools at the level that is required for a healthy ecosystem.
11+
To bridge this gap, we're introducing Ecosystem Contracts: a collaborative framework that connects companies needing specific Haskell infrastructure improvements with consultancies capable of delivering that work, all while ensuring the broader ecosystem benefits.
12+
This approach allows the Haskell Foundation to fulfill its coordination role while directing much-needed resources to critical infrastructure.
13+
14+
Ecosystem Contracts
15+
===
16+
17+
An Ecosystem Contract is an agreement between a buyer that would like to fund development on specific Haskell infrastructure (e.g. GHC) and a company willing to perform that work, ensuring that the buyer's needs are met.
18+
Rather than working in isolation, these contracts are developed in collaboration with the Haskell Foundation, ensuring that the work addresses both the specific needs of the buyer and benefits the wider Haskell community.
19+
Additionally, a portion of each contract feeds back to the Haskell Foundation itself, granting the funding organization official sponsorship status while supporting our continued coordination work.
20+
Several companies have wanted to support the Haskell Foundation while also needing more specific support that the HF is not able to offer.
21+
The pass-through funds allow these companies to do both with a single transaction.
22+
23+
24+
We view this approach as a benefit to all three entities:
25+
26+
27+
- The buyer gets improvements to infrastructe they care about and Haskell Foundation Sponsorship status
28+
- the seller gets funds to work on the infrastructure and partnership with the Haskell Foundation
29+
- the Haskell Foundation is able to direct effort to critical infrastructure without needing to hire into that expertise
30+
31+
32+
By providing a single point of payment, these offerings also streamline the process of a purchaser supporting the ecosystem with funds, instead of having to carry out two separate negotiations.
33+
34+
The first Ecosystem Contract: Well-Typed
35+
---
36+
37+
Well-Typed has created an offering (We should link to a non-internal version of the offering) for supporting work on GHC, Cabal, HLS, and other core developer tools.
38+
This offering was designed with input from the Haskell Foundation as well as feedback from interested parties.
39+
40+
41+
The Future
42+
---
43+
44+
Well-Typed is the first consultancy to launch an Ecosystem Conract, but we are already in discussion with other companies that are interested in providing offerings of their own.
45+
We encourage any entity interested in working with the Haskell Foundation in this way to reach out to [email protected].
46+
47+
48+
Avoiding Conflicts of Interest
49+
===
50+
51+
Lastly, a word about conflicts of interest.
52+
The Haskell Foundation's aim in these matters is to push for what's best for the Haskell Ecosystem as a whole, not necessarily the needs of a particular consultancy.
53+
As such it's important that the Foundation avoids any potential conflict of interest when working with consultancies on the shape and scope of Ecosystem Contracts.
54+
This is made more acute by the fact that the Haskell Foundation's Board of Directors contains members from various companies and consultancies that may wish to create Ecosystem Contracts (e.g. Well-Typed and Obsidian, currently).
55+
The process is simple: ensure appropriate recusal as well as ensuring the involvement of other interested parties.
56+
57+
Recusal
58+
---
59+
60+
Any member of the board that is involved with a company offering an Ecosystem Contract must recuse themselves from all discussions at the Foundation pertaining to that Ecosystem Contract.
61+
62+
We ensured that all Well-Typed-affiliated board members were absent for all Haskell Foundation board discussions pertaining to the Well-Typed offering.
63+
64+
Oversight
65+
---
66+
67+
The Haskell Foundation will ensure that any such offering is vetted by representatives of companies that may offer a similar product. In the case were such a representative is not already a member of the Board of Directors, we will reach out to them specifically.
68+
69+
Closing Thoughts
70+
===
71+
72+
The Haskell Foundation is very optimistic about the potential of these offerings, there are already a few customers of Well-Typed's offering and the initial feedback is positive.
73+
Ecosystem-wide concerns can't be addressed by one entity alone and Ecosystem Contracts are one way that we can collaborate on improving the Haskell Ecosystem.

news/2025-03-24

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

site.hs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,18 @@ main = hakyll $ do
127127
>>= loadAndApplyTemplate "templates/boilerplate.html" sponsors
128128
>>= relativizeUrls
129129

130+
match "news/*.markdown" $ do
131+
route $ setExtension "html"
132+
let ctxt = mconcat
133+
[ defaultContext ]
134+
compile $ do
135+
sponsors <- buildBoilerplateCtx Nothing
136+
pandocCompiler
137+
>>= applyAsTemplate sponsors
138+
>>= loadAndApplyTemplate "templates/news/page.html" ctxt
139+
>>= loadAndApplyTemplate "templates/boilerplate.html" sponsors
140+
>>= relativizeUrls
141+
130142
-- press -----------------------------------------------------------------------------------------------
131143
match "press/**.markdown" $ compile pandocCompiler
132144
create ["news/press/index.html"] $ do

templates/mobile-nav-flyout.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141

4242
<div class="block py-3 border-t border-gray-320 hover:bg-gray-100 text-lg font-medium text-gray-500">News and Info</div>
4343
<a href="/news" class="block py-3 pl-6 border-t border-gray-320 hover:bg-gray-100 text-lg font-medium">News</a>
44+
<a href="https://haskell.foundation/events" class="block py-3 pl-6 border-t border-gray-320 hover:bg-gray-100 text-lg font-medium">Events</a>
4445
<a href="/news/press" class="block py-3 pl-6 border-t border-gray-320 hover:bg-gray-100 text-lg font-medium">Press</a>
4546
<a href="/resources" class="block py-3 pl-6 border-t border-gray-320 hover:bg-gray-100 text-lg font-medium">Resources</a>
4647
<a href="/faq" class="block py-3 pl-6 border-t border-gray-320 hover:bg-gray-100 text-lg font-medium">FAQ</a>

templates/nav.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@
7777
News
7878
</a>
7979

80+
<a class="block p-4 border-t-2 hover:bg-gray-50 cursor-pointer" href="https://haskell.foundation/events">
81+
Events
82+
</a>
83+
8084
<a class="block p-4 border-t-2 hover:bg-gray-50 cursor-pointer" href="/news/press">
8185
Press
8286
</a>

templates/news/page.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<div class="max-w-screen-xl mx-auto">
2+
<div class="xl:max-w-screen-xl mx-auto md:px-12 lg:px-16 py-16 md:py-24">
3+
<div class="bg-gray-800 shadow-lg shadow-xl shadow-md shadow-sm px-6 sm:px-12 md:px-12 lg:px-16 py-16 md:py-20">
4+
<h2 class="text-gray-50 font-normal text-3xl-4xl text-center">$title$</h2>
5+
</div>
6+
</div>
7+
</div>
8+
<div class="max-w-screen-xl mx-auto">
9+
<div class="px-4 sm:px-8 md:px-12 lg:px-16">
10+
<div class="mx-auto prose md:prose-lg">
11+
$body$
12+
</div>
13+
</div>
14+
</div>

templates/news/tile.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ <h2 class="text-2xl-4xl font-normal">$title$</h2>
2020
$endif$
2121
<div class="mt-8 space-y-4">$body$</div>
2222
</div>
23+
<div class="mt-4">
24+
<a class="arrow-link" href="$url$">&gt;&gt; Read more</a>
25+
</div>
2326
</div>
2427
</div>
2528
</div>

0 commit comments

Comments
 (0)