Novaへのコントリビュート報酬で700ユーロを受け取った
- publishedAt:
- 2025/12/20
- updatedAt:
- 2025/12/20
Intro
今年の前半にやっていたNovaの実装に対する報酬として700ユーロを受け取った。
なかなかレアな体験ができたと思うので、せっかくなのでブログ書いておく。
どうやって受け取ったのか
この700ユーロは、NLnet Foundationから振り込まれた。 nlnetにNovaがサポートされるようになった背景や諸々については、Working for the Internetを読んでほしい。
他のプロジェクトはわからないが、Novaの場合、issueにnlnetとラベルがついたものにコントリビュートし、それが完了したらAapoがcloseするのでそうすれば完了となり、報酬を受け取ることができる。
気になる人はhttps://github.com/trynova/nova/issues?q=is%3Aissue%20state%3Aopen%20label%3ANLnetを見るといいだろう。かなり数は減ったが。
大抵の人がOSSの活動を通して受け取るお金は、github sponsorや opencollective などになるかと思うが、こういうのもあるのかと思った。
何をやったのか
自分は%TypedArray%.prototype builtin functionsを実装した。
- feat(ecmascript): %TypedArray%.prototype.some #545
- feat(ecmascript): %TypedArray%.prototype.every #547
- feat(ecmascript): %TypedArray%.prototype.at #550
- feat(ecmascript): %TypedArray%.prototype.forEach #553
- feat(ecmascript): %TypedArray%.prototype.includes #554
- feat(ecmascript): %TypedArray%.prototype.indexOf #556
- feat(ecmascript): %TypedArray%.prototype.find #568
- feat(ecmascript): %TypedArray%.prototype.findIndex #571
- feat(ecmascript): %TypedArray%.prototype.findLast #584
- feat(ecmascript): %TypedArray%.prototype.lastIndexOf #585
- feat(ecmascript): %TypedArray%.prototype.findLastIndex #590
- feat(ecmascript): %TypedArray%.prototype.reverse #593
- feat(ecmascript): TypedArrayCreateFromConstructor and %TypedArray%.of #601
- feat(ecmascript): %TypedArray%.from #604
- feat(ecmascript): %TypedArray%.prototype.copyWithin #605
- feat(ecmascript): %TypedArray%.prototype.fill #607
- feat(ecmascript): %TypedArray%.prototype.reduce #609
- feat(ecmascript): %TypedArray%.prototype.sort #610
- feat(ecmascript): %TypedArray%.prototype.toReversed #611
- feat(ecmascript): %TypedArray%.prototype.reduceRight #655
- feat(ecmascript): %TypedArray%.prototype.filter #660
- feat(ecmascript): %TypedArray%.prototype.with #663
- feat(ecmascript): %TypedArray%.prototype.map #695
- feat(ecmascript): %TypedArray%.prototype.toSorted #701
- feat(ecmascript): %TypedArray%.prototype.subarray #733
- feat(ecmascript): %TypedArray%.prototype.slice #736
- feat(ecmascript): %TypedArray%.prototype.set #744
- feat(ecmascript): Array and TypedArray prototype toLocaleString #745
上記が自分が出したPRだ。基本的にメソッドごとに実装を進めるようにしていた。ほとんどNovaのTypedArrayは自分が作った。
実装の進め方などは、ブログにすでにいくつか書いたのでそちらを読んでほしい
- NovaのProxy Internal Methodを実装した
- TypedArray.prototype.includesの実装と少しの最適化
- ecma262とtest262へのコントリビュートと背景
- ネイティブコードを使ったNovaのTypedArray.prototype.indexOfの最適化
- nova_vmのバイトコード処理のコードリーディング
- Novaで違いを理解しながらreverse/toReversedを実装した
- negative/positive NaNを意識して、RustのsortとJSのsortの挙動を合わせる
- NovaにActive proposalを入れる方法
まとめ
Novaに関して、最初は報酬など受け取れると思っていなかった。このTypedArrayも最初は報酬対象ではなく、実装がほとんど終わった状態でnlnetの対象になったのもある。
報酬が受け取りやすいOSSはツールチェイン系のものが多い印象がある中、JavaScript Engineの実装で報酬を受け取れたのは個人としてとても嬉しいし、ぜひこういう機会が増えていければいいなと思う。
Novaへのコントリビュート報酬で700ユーロを受け取った
- publishedAt:
- 2025/12/20
- updatedAt:
- 2025/12/20
0