From 1952d145e16d503d6ea802e232b751e29085f656 Mon Sep 17 00:00:00 2001 From: Julien Moutinho Date: Sat, 28 Mar 2026 02:58:42 +0100 Subject: [PATCH] user/completeness(Invoice): display Seller and Buyer as Organization not Entity --- src/Literate/Invoice/HTML.hs | 14 ++++++++--- tests/Tests/Invoice.hs | 40 ++++++++++++++++++++++++++++-- tests/Tests/Invoice/org0sale0.html | 2 +- tests/Tests/Invoice/org3sale1.html | 2 +- tests/Tests/Invoice/org3sale2.html | 2 +- tests/Tests/Invoice/org3sale3.html | 2 +- tests/Tests/Invoice/org3sale4.html | 2 ++ tests/Tests/Organization.hs | 14 ++++++++--- 8 files changed, 65 insertions(+), 13 deletions(-) create mode 100644 tests/Tests/Invoice/org3sale4.html diff --git a/src/Literate/Invoice/HTML.hs b/src/Literate/Invoice/HTML.hs index 736aa3e..8a9016d 100644 --- a/src/Literate/Invoice/HTML.hs +++ b/src/Literate/Invoice/HTML.hs @@ -195,7 +195,7 @@ instance , Doc.section ( [ ["InvoiceIdentifier" := inv & invoiceIdInline & Doc.toBlock] , ["InvoiceType" := inv & invoiceType & Doc.toBlock] - , ["InvoiceOrders" := inv & invoiceOrders <&> (\x -> "-" := Doc.toBlock x) & Doc.List & Doc.toBlock] + , ["InvoiceOrders" := inv & invoiceOrders <&> (\x -> "—" := Doc.toBlock x) & Doc.List & Doc.toBlock] , ["InvoiceEmittedOn" := inv & invoiceEmittedOn & Doc.toBlock] , ["InvoicePaymentDueBefore" := inv & invoicePaymentDueBefore & Doc.toBlock] ] @@ -211,8 +211,16 @@ instance Doc.BlockDiv $ Doc.container [ Doc.Dict - [ "Seller" := inv & invoiceIssuer & get @(Entity entId) & Doc.toBlock - , "Buyer" := inv & invoiceRecipient & get @(Entity entId) & Doc.toBlock + [ "Seller" := + inv + & invoiceIssuer + & get @(Organization entId) + & Doc.toBlock + , "Buyer" := + inv + & invoiceRecipient + & get @(Organization entId) + & Doc.toBlock ] & Doc.toBlock ] diff --git a/tests/Tests/Invoice.hs b/tests/Tests/Invoice.hs index 0de39e3..12f55c6 100644 --- a/tests/Tests/Invoice.hs +++ b/tests/Tests/Invoice.hs @@ -47,6 +47,7 @@ data InvoiceId | Invoice_org3sale1 | Invoice_org3sale2 | Invoice_org3sale3 + | Invoice_org3sale4 deriving (Eq, Ord, Show, Generic, Enum, NFData) instance Get (Invoice ScopeId ActionId EntityId InvoiceId) InvoiceId where @@ -158,7 +159,7 @@ instance Get (Invoice ScopeId ActionId EntityId InvoiceId) InvoiceId where Invoice { invoiceId , invoiceType = InvoiceTypeSale - , invoiceOrders = ["contract n°2026-FixMe"] + , invoiceOrders = ["contract n°2026-07, February 2026"] , invoiceEmittedOn , invoicePaymentDueBefore = invoiceEmittedOn & Time.addLocalTime (31 * Time.nominalDay) , invoiceIssuer = EntityJulmInfo @@ -181,7 +182,42 @@ instance Get (Invoice ScopeId ActionId EntityId InvoiceId) InvoiceId where or $ [ and $ [ work & workDate & (> "2026-01-28") - , work & workDate & (<= "2026-12-31") + , work & workDate & (< "2026-03-01") + ] + & list + ] + & list + } + where + invoiceEmittedOn = "2026-03-31" + Invoice_org3sale4 -> + Invoice + { invoiceId + , invoiceType = InvoiceTypeSale + , invoiceOrders = ["contract n°2026-07, Mars 2026"] + , invoiceEmittedOn + , invoicePaymentDueBefore = invoiceEmittedOn & Time.addLocalTime (31 * Time.nominalDay) + , invoiceIssuer = EntityJulmInfo + , invoiceRecipient = EntityNixOSFoundationNGITeam + , invoiceRates = + [ Action_Debug := 31.25 + , Action_Develop := 31.25 + , Action_Document := 31.25 + , Action_Organize := 31.25 + , Action_Review := 31.25 + ] + , invoiceMentions = + [ InvoiceMentionTVANonApplicable + , InvoiceMentionIndemnitéForfaitaire + , InvoiceMentionIndemnitéTaux (12.15 :: Amount 100 (UnitName "%")) + ] + , invoiceWorks = + works + & List.filter \work -> + or $ + [ and $ + [ work & workDate & (>= "2026-03-01") + , work & workDate & (<= "2026-04-01") ] & list ] diff --git a/tests/Tests/Invoice/org0sale0.html b/tests/Tests/Invoice/org0sale0.html index 739140b..4e86841 100644 --- a/tests/Tests/Invoice/org0sale0.html +++ b/tests/Tests/Invoice/org0sale0.html @@ -1,2 +1,2 @@ -julminfo - 2026-01-22 - Invoice #org0sale0

Invoice

InvoiceIdentifier:

org0sale0

InvoiceType:

sale

InvoiceOrders:
InvoiceEmittedOn:

2026-01-22

InvoicePaymentDueBefore:

2026-02-22

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Buyer:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Grand totals

Time frame

Workload

To pay (excl. taxes)

2000-01-01

2000-01-01

1.00 h

0.00 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-02-23): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-01-22 - Invoice #org0sale0

1/3

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

develop

2000-01-01

2000-01-01

0.00 € / h

1.00 h

(100.0%)

0.00 €

2/3

julminfo - 2026-01-22 - Invoice #org0sale0 — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2000-01-01

1.00 h

develop

julminfo - 2026-01-22 - Invoice #org0sale0 — Details

3/3

\ No newline at end of file +julminfo - 2026-01-22 - Invoice #org0sale0

Invoice

InvoiceIdentifier:

org0sale0

InvoiceType:

sale

InvoiceOrders:
InvoiceEmittedOn:

2026-01-22

InvoicePaymentDueBefore:

2026-02-22

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Admin:
Name:

Julien Moutinho

Email:
Buyer:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Admin:
Name:

Julien Moutinho

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2000-01-01

2000-01-01

1.00 h

0.00 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-02-23): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-01-22 - Invoice #org0sale0

1/3

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

develop

2000-01-01

2000-01-01

0.00 € / h

1.00 h

(100.0%)

0.00 €

2/3

julminfo - 2026-01-22 - Invoice #org0sale0 — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2000-01-01

1.00 h

develop

julminfo - 2026-01-22 - Invoice #org0sale0 — Details

3/3

\ No newline at end of file diff --git a/tests/Tests/Invoice/org3sale1.html b/tests/Tests/Invoice/org3sale1.html index 2d7cf15..1698169 100644 --- a/tests/Tests/Invoice/org3sale1.html +++ b/tests/Tests/Invoice/org3sale1.html @@ -1,2 +1,2 @@ -julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24

Invoice

InvoiceIdentifier:

org3sale1

InvoiceType:

sale

InvoiceOrders:
-

Contract n°2025-24

InvoiceEmittedOn:

2026-01-22

InvoicePaymentDueBefore:

2026-02-22

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Buyer:
Name:

Nix@NGI Team

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2025-11-06

2025-12-21

148.60 h

4643.75 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-02-23): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24

1/5

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

Bonfire & NGIpkgs

develop

2025-11-06

2025-12-21

31.25 € / h

133.00 h

(89.5%)

4156.25 €

2

service

DNSvizor & NGIpkgs

review

2025-12-18

2025-12-18

31.25 € / h

1.00 h

(0.67%)

31.25 €

3

service

NGIpkgs

review

2025-12-10

2025-12-17

31.25 € / h

7.50 h

(5.05%)

234.38 €

4

service

NGIpkgs

organize

2025-11-06

2025-12-19

31.25 € / h

7.00 h

(4.71%)

218.75 €

5

service

Nixpkgs & OpenCV

develop

2025-11-08

2025-11-08

31.25 € / h

0.10 h

(0.07%)

3.12 €

2/5

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2025-11-06

0.50 h

NGIpkgs

organize

first meeting

2

2025-11-06

4.00 h

Bonfire & NGIpkgs

develop

focus on the hardest part first

3

2025-11-07

8.00 h

Bonfire & NGIpkgs

develop

continuing to package Bonfire deps

4

2025-11-08

0.10 h

Nixpkgs & OpenCV

develop

fix opencv in nixpkgs

5

2025-11-09

8.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

6

2025-11-09

4.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

7

2025-11-11

6.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

8

2025-11-12

4.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

9

2025-11-14

5.00 h

Bonfire & NGIpkgs

develop

continue to fix deps and move into ngipkgs

11

2025-11-15

6.00 h

Bonfire & NGIpkgs

develop

finish to build Bonfire and start to fix runtime bugs

12

2025-11-16

4.00 h

Bonfire & NGIpkgs

develop

workaround and contribute upstream

13

2025-11-17

8.00 h

Bonfire & NGIpkgs

develop

add updateScript and fix opencv

14

2025-11-19

8.00 h

Bonfire & NGIpkgs

develop

continue to fix startup crashes

15

2025-11-21

4.00 h

Bonfire & NGIpkgs

develop

begin to package yarn assets. Upstream likes convoluted code and fake libraries.

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Details

3/5

#

Date

Duration

Scope

Action

References

Description

16

2025-11-21

1.00 h

NGIpkgs

organize

weekly meeting

17

2025-11-21

4.00 h

Bonfire & NGIpkgs

develop

continue to package assets

18

2025-11-23

4.00 h

Bonfire & NGIpkgs

develop

continue to package assets and try to get Bonfire to work

19

2025-11-24

10.00 h

Bonfire & NGIpkgs

develop

continue to solve problems with Bonfire packaging

20

2025-11-27

8.00 h

Bonfire & NGIpkgs

develop

successfully auto-update and build Bonfire

22

2025-11-29

5.00 h

Bonfire & NGIpkgs

develop

begin the service module

23

2025-12-02

4.00 h

Bonfire & NGIpkgs

develop

continue the service module

24

2025-12-03

8.00 h

Bonfire & NGIpkgs

develop

first working service module

25

2025-12-04

5.00 h

Bonfire & NGIpkgs

develop

improve service module

28

2025-12-12

1.00 h

NGIpkgs

organize

weekly visio meeting

29

2025-12-13

5.00 h

Bonfire & NGIpkgs

develop

update to latest; overcoming new bugs introduced by upstream

30

2025-12-15

4.00 h

Bonfire & NGIpkgs

develop

improving the update script and still overcoming upstream bugs

4/5

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Details

#

Date

Duration

Scope

Action

References

Description

31

2025-12-16

3.00 h

Bonfire & NGIpkgs

develop

overcoming bugs, again

32

2025-12-16

2.00 h

NGIpkgs

review

visio to review PRs

33

2025-12-16

2.00 h

NGIpkgs

review

visio to review PRs

34

2025-12-17

1.50 h

NGIpkgs

review

visio to review PRs

35

2025-12-18

1.00 h

DNSvizor & NGIpkgs

review

review linj’s PR

36

2025-12-19

1.50 h

NGIpkgs

organize

weekly meeting

37

2025-12-21

4.00 h

Bonfire & NGIpkgs

develop

fix bug using __structuredAttrs

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Details

5/5

\ No newline at end of file +julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24

Invoice

InvoiceIdentifier:

org3sale1

InvoiceType:

sale

InvoiceOrders:
—

Contract n°2025-24

InvoiceEmittedOn:

2026-01-22

InvoicePaymentDueBefore:

2026-02-22

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Admin:
Name:

Julien Moutinho

Email:
Buyer:
Name:

Stichting NixOS Foundation

Address:

Korte Lijnbaanssteeg 1-4318

1012 SL Amsterdam Netherlands

Admin:
Department:
Name:

Nix@NGI Team

Email:
Admin:
Name:

Daniel Ramirez

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2025-11-06

2025-12-21

148.60 h

4643.75 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-02-23): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24

1/5

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

Bonfire & NGIpkgs

develop

2025-11-06

2025-12-21

31.25 € / h

133.00 h

(89.5%)

4156.25 €

2

service

DNSvizor & NGIpkgs

review

2025-12-18

2025-12-18

31.25 € / h

1.00 h

(0.67%)

31.25 €

3

service

NGIpkgs

review

2025-12-10

2025-12-17

31.25 € / h

7.50 h

(5.05%)

234.38 €

4

service

NGIpkgs

organize

2025-11-06

2025-12-19

31.25 € / h

7.00 h

(4.71%)

218.75 €

5

service

Nixpkgs & OpenCV

develop

2025-11-08

2025-11-08

31.25 € / h

0.10 h

(0.07%)

3.12 €

2/5

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2025-11-06

0.50 h

NGIpkgs

organize

first meeting

2

2025-11-06

4.00 h

Bonfire & NGIpkgs

develop

focus on the hardest part first

3

2025-11-07

8.00 h

Bonfire & NGIpkgs

develop

continuing to package Bonfire deps

4

2025-11-08

0.10 h

Nixpkgs & OpenCV

develop

fix opencv in nixpkgs

5

2025-11-09

8.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

6

2025-11-09

4.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

7

2025-11-11

6.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

8

2025-11-12

4.00 h

Bonfire & NGIpkgs

develop

continue to fix deps

9

2025-11-14

5.00 h

Bonfire & NGIpkgs

develop

continue to fix deps and move into ngipkgs

11

2025-11-15

6.00 h

Bonfire & NGIpkgs

develop

finish to build Bonfire and start to fix runtime bugs

12

2025-11-16

4.00 h

Bonfire & NGIpkgs

develop

workaround and contribute upstream

13

2025-11-17

8.00 h

Bonfire & NGIpkgs

develop

add updateScript and fix opencv

14

2025-11-19

8.00 h

Bonfire & NGIpkgs

develop

continue to fix startup crashes

15

2025-11-21

4.00 h

Bonfire & NGIpkgs

develop

begin to package yarn assets. Upstream likes convoluted code and fake libraries.

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Details

3/5

#

Date

Duration

Scope

Action

References

Description

16

2025-11-21

1.00 h

NGIpkgs

organize

weekly meeting

17

2025-11-21

4.00 h

Bonfire & NGIpkgs

develop

continue to package assets

18

2025-11-23

4.00 h

Bonfire & NGIpkgs

develop

continue to package assets and try to get Bonfire to work

19

2025-11-24

10.00 h

Bonfire & NGIpkgs

develop

continue to solve problems with Bonfire packaging

20

2025-11-27

8.00 h

Bonfire & NGIpkgs

develop

successfully auto-update and build Bonfire

22

2025-11-29

5.00 h

Bonfire & NGIpkgs

develop

begin the service module

23

2025-12-02

4.00 h

Bonfire & NGIpkgs

develop

continue the service module

24

2025-12-03

8.00 h

Bonfire & NGIpkgs

develop

first working service module

25

2025-12-04

5.00 h

Bonfire & NGIpkgs

develop

improve service module

28

2025-12-12

1.00 h

NGIpkgs

organize

weekly visio meeting

29

2025-12-13

5.00 h

Bonfire & NGIpkgs

develop

update to latest; overcoming new bugs introduced by upstream

30

2025-12-15

4.00 h

Bonfire & NGIpkgs

develop

improving the update script and still overcoming upstream bugs

4/5

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Details

#

Date

Duration

Scope

Action

References

Description

31

2025-12-16

3.00 h

Bonfire & NGIpkgs

develop

overcoming bugs, again

32

2025-12-16

2.00 h

NGIpkgs

review

visio to review PRs

33

2025-12-16

2.00 h

NGIpkgs

review

visio to review PRs

34

2025-12-17

1.50 h

NGIpkgs

review

visio to review PRs

35

2025-12-18

1.00 h

DNSvizor & NGIpkgs

review

review linj’s PR

36

2025-12-19

1.50 h

NGIpkgs

organize

weekly meeting

37

2025-12-21

4.00 h

Bonfire & NGIpkgs

develop

fix bug using __structuredAttrs

julminfo - 2026-01-22 - Invoice #org3sale1 - Contract n°2025-24 — Details

5/5

\ No newline at end of file diff --git a/tests/Tests/Invoice/org3sale2.html b/tests/Tests/Invoice/org3sale2.html index ae583a3..af6e5ec 100644 --- a/tests/Tests/Invoice/org3sale2.html +++ b/tests/Tests/Invoice/org3sale2.html @@ -1,2 +1,2 @@ -julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03

Invoice

InvoiceIdentifier:

org3sale2

InvoiceType:

sale

InvoiceOrders:
-

contract n°2026-03

InvoiceEmittedOn:

2026-01-27

InvoicePaymentDueBefore:

2026-02-27

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Buyer:
Name:

Nix@NGI Team

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2025-12-23

2026-03-27

227.35 h

7104.69 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-02-28): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03

1/9

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

BEAM & NGIpkgs

develop

2025-12-30

2025-12-30

31.25 € / h

4.00 h

(1.76%)

125.00 €

2

service

Bonfire

develop

2026-02-11

2026-02-23

31.25 € / h

12.00 h

(5.28%)

375.00 €

3

service

Bonfire & NGIpkgs

develop

2025-12-23

2026-01-09

31.25 € / h

36.00 h

(15.83%)

1125.00 €

4

service

Collabora Desktop

review

2026-02-28

2026-02-28

31.25 € / h

4.00 h

(1.76%)

125.00 €

5

service

DNSvizor

debug

2026-02-04

2026-02-04

31.25 € / h

3.00 h

(1.32%)

93.75 €

6

service

DNSvizor

develop

2026-02-04

2026-02-23

31.25 € / h

6.60 h

(2.9%)

206.25 €

7

service

DNSvizor

review

2026-01-30

2026-01-30

31.25 € / h

1.00 h

(0.44%)

31.25 €

8

service

DNSvizor & Mirage

develop

2026-02-10

2026-02-16

31.25 € / h

9.00 h

(3.96%)

281.25 €

9

service

DNSvizor & NGIpkgs

develop

2026-01-11

2026-01-12

31.25 € / h

10.00 h

(4.4%)

312.50 €

10

service

NGIpkgs

organize

2026-01-30

2026-02-27

31.25 € / h

10.75 h

(4.73%)

335.94 €

11

service

NGIpkgs & Seppo

develop

2026-01-25

2026-01-27

31.25 € / h

14.00 h

(6.16%)

437.50 €

12

service

NGI Nix Forge

develop

2026-03-02

2026-03-27

31.25 € / h

79.50 h

(34.97%)

2484.38 €

13

service

NGI Nix Forge

review

2026-03-02

2026-03-16

31.25 € / h

8.00 h

(3.52%)

250.00 €

14

service

NGI Nix Forge

organize

2026-02-26

2026-03-27

31.25 € / h

26.00 h

(11.44%)

812.50 €

15

service

nimi

develop

2026-03-08

2026-03-08

31.25 € / h

1.00 h

(0.44%)

31.25 €

2/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

16

service

opam-nix

develop

2026-02-11

2026-02-11

31.25 € / h

1.00 h

(0.44%)

31.25 €

17

service

opam-nix

document

2026-02-04

2026-02-04

31.25 € / h

0.50 h

(0.22%)

15.62 €

18

service

Sylk

review

2026-02-23

2026-02-23

31.25 € / h

1.00 h

(0.44%)

31.25 €

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Summary

3/9

Details

#

Date

Duration

Scope

Action

References

Description

1

2025-12-23

2.00 h

Bonfire & NGIpkgs

develop

address reviewers’ concerns

2

2025-12-24

4.00 h

Bonfire & NGIpkgs

develop

update Bonfire and report issues upstream

3

2025-12-24

2.00 h

Bonfire & NGIpkgs

develop

update Bonfire to fix bugs

4

2025-12-25

6.00 h

Bonfire & NGIpkgs

develop

update and fix bugs

5

2025-12-26

1.00 h

Bonfire & NGIpkgs

develop

update to fix bugs

6

2025-12-29

2.00 h

Bonfire & NGIpkgs

develop

add more tests

7

2025-12-30

4.00 h

BEAM & NGIpkgs

develop

improve buildMix & mixRelease for packaging Elixir software

8

2026-01-01

4.00 h

Bonfire & NGIpkgs

develop

support other flavours

9

2026-01-03

4.00 h

Bonfire & NGIpkgs

develop

support other flavours, and make update more resilient

10

2026-01-04

2.00 h

Bonfire & NGIpkgs

develop

provide upstream with reproducers

11

2026-01-05

2.00 h

Bonfire & NGIpkgs

develop

update to latest version

12

2026-01-07

5.00 h

Bonfire & NGIpkgs

develop

fix updating

13

2026-01-09

2.00 h

Bonfire & NGIpkgs

develop

answer upstream’s questions

14

2026-01-11

5.00 h

DNSvizor & NGIpkgs

develop

replace hillingar to package MirageOS unikernels

15

2026-01-12

5.00 h

DNSvizor & NGIpkgs

develop

remove the need for --allow-import-from-derivation

4/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

#

Date

Duration

Scope

Action

References

Description

16

2026-01-25

4.00 h

NGIpkgs & Seppo

develop

begin packaging

17

2026-01-26

5.00 h

NGIpkgs & Seppo

develop

continue packaging

18

2026-01-27

5.00 h

NGIpkgs & Seppo

develop

continue packaging

19

2026-01-30

1.00 h

NGIpkgs

organize

weekly meeting

20

2026-01-30

1.00 h

DNSvizor

review

second round of discussion

21

2026-02-04

3.00 h

DNSvizor

debug

blame Thread-Local Storage (TLS) for runtime crash of DNSvizor built with Nix

22

2026-02-04

0.50 h

DNSvizor

develop

address reviewer concerns

23

2026-02-05

3.00 h

DNSvizor

develop

workaround longstanding runtime failure due to Thread-Local Storage in Solo5

24

2026-02-06

3.00 h

DNSvizor

develop

address reviewer’s concern about closure size

25

2026-02-04

0.50 h

opam-nix

document

address upstream concerns

26

2026-02-06

2.50 h

NGIpkgs

organize

weekly meeting

27

2026-02-10

3.00 h

DNSvizor & Mirage

develop

standardization of the build helper

28

2026-02-11

2.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

29

2026-02-11

1.00 h

DNSvizor & Mirage

develop

address reviewers’ concerns

30

2026-02-11

5.00 h

Bonfire

develop

update to 1.0.2-alpha.23

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

5/9

#

Date

Duration

Scope

Action

References

Description

31

2026-02-11

1.00 h

opam-nix

develop

address upstream-s concern

32

2026-02-13

1.00 h

NGIpkgs

organize

weekly meeting

33

2026-02-16

3.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

34

2026-02-19

5.00 h

Bonfire

develop

update to 1.0.2-alpha.32

35

2026-02-21

2.00 h

NGIpkgs

organize

weekly meeting

36

2026-02-21

1.00 h

NGIpkgs

organize

meeting with Ivan Mincik to understand his vision for NGIpkgs App Store

37

2026-02-24

1.50 h

NGIpkgs

organize

meeting with Valentin Gagarin and the Nix@NGI team to discuss Ivan’s Nix App Store

38

2026-02-23

2.00 h

Bonfire

develop

fix upstream lock file (again)

39

2026-02-23

1.00 h

Sylk

review

resurrect and improve fixes dropped by original author

40

2026-02-23

0.10 h

DNSvizor

develop

rebase due to conflicts

41

2026-02-26

2.50 h

NGI Nix Forge

organize

discuss with Ivan and the Nix@NGI team about Ivan’s vision

42

2026-02-27

1.75 h

NGIpkgs

organize

weekly meeting

43

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

44

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

45

2026-03-02

3.00 h

NGI Nix Forge

review

understand by rewriting from scratch

6/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

#

Date

Duration

Scope

Action

References

Description

46

2026-03-02

3.00 h

NGI Nix Forge

develop

package elm-watch

47

2026-03-03

3.00 h

NGI Nix Forge

develop

improve dev environment

48

2026-03-03

1.00 h

NGI Nix Forge

organize

answer questions

49

2026-03-04

4.00 h

NGI Nix Forge

develop

assess code quality of the UI

50

2026-03-04

2.50 h

NGI Nix Forge

organize

share progress and open issues

51

2026-03-05

4.00 h

NGI Nix Forge

review

review Fedi’s work

52

2026-03-06

1.50 h

NGI Nix Forge

organize

discuss nix-forge

53

2026-03-07

4.00 h

NGI Nix Forge

develop

track down and fix bug in Fedi’s branch

54

2026-03-08

1.00 h

nimi

develop

improve performance

55

2026-03-09

7.00 h

NGI Nix Forge

develop

rewrite in a more type-safe and idiomatic way

57

2026-03-10

2.00 h

NGI Nix Forge

organize

discuss UI design

58

2026-03-10

10.00 h

NGI Nix Forge

develop

implement discussed design

59

2026-03-16

2.00 h

NGI Nix Forge

organize

weekly meeting

60

2026-03-13

2.00 h

NGI Nix Forge

organize

weekly meeting

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

7/9

#

Date

Duration

Scope

Action

References

Description

61

2026-03-13

4.00 h

NGI Nix Forge

develop

try to support browser history

62

2026-03-11

3.00 h

NGI Nix Forge

develop

address review comments

63

2026-03-15

10.00 h

NGI Nix Forge

develop

fix routing bugs

64

2026-03-16

1.00 h

NGI Nix Forge

review

review Phani’s work

65

2026-03-16

6.00 h

NGI Nix Forge

develop

improve underlying model or the UI

66

2026-03-17

2.50 h

NGI Nix Forge

organize

design discussion with Ivan and Phani

67

2026-03-17

6.00 h

NGI Nix Forge

develop

implement routing for all pages

68

2026-03-17

4.00 h

NGI Nix Forge

organize

review Phani’s work with Phani

69

2026-03-19

1.00 h

NGI Nix Forge

develop

implement options listing for packager

70

2026-03-20

1.50 h

NGI Nix Forge

organize

weekly meeting

71

2026-03-22

5.00 h

NGI Nix Forge

develop

init options browsing

72

2026-03-23

5.00 h

NGI Nix Forge

develop

multiple fixes related to the UI

73

2026-03-25

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

74

2026-03-26

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

75

2026-03-26

2.00 h

NGI Nix Forge

develop

address reliability concerns of the dev environment

8/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

#

Date

Duration

Scope

Action

References

Description

76

2026-03-27

2.00 h

NGI Nix Forge

develop

implement pagination for /recipe/options

77

2026-03-27

2.50 h

NGI Nix Forge

organize

weekly meeting

78

2026-03-27

0.50 h

NGI Nix Forge

develop

address reviewer’s concerns

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

9/9

\ No newline at end of file +julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03

Invoice

InvoiceIdentifier:

org3sale2

InvoiceType:

sale

InvoiceOrders:
—

contract n°2026-03

InvoiceEmittedOn:

2026-01-27

InvoicePaymentDueBefore:

2026-02-27

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Admin:
Name:

Julien Moutinho

Email:
Buyer:
Name:

Stichting NixOS Foundation

Address:

Korte Lijnbaanssteeg 1-4318

1012 SL Amsterdam Netherlands

Admin:
Department:
Name:

Nix@NGI Team

Email:
Admin:
Name:

Daniel Ramirez

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2025-12-23

2026-03-27

227.35 h

7104.69 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-02-28): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03

1/9

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

BEAM & NGIpkgs

develop

2025-12-30

2025-12-30

31.25 € / h

4.00 h

(1.76%)

125.00 €

2

service

Bonfire

develop

2026-02-11

2026-02-23

31.25 € / h

12.00 h

(5.28%)

375.00 €

3

service

Bonfire & NGIpkgs

develop

2025-12-23

2026-01-09

31.25 € / h

36.00 h

(15.83%)

1125.00 €

4

service

Collabora Desktop

review

2026-02-28

2026-02-28

31.25 € / h

4.00 h

(1.76%)

125.00 €

5

service

DNSvizor

debug

2026-02-04

2026-02-04

31.25 € / h

3.00 h

(1.32%)

93.75 €

6

service

DNSvizor

develop

2026-02-04

2026-02-23

31.25 € / h

6.60 h

(2.9%)

206.25 €

7

service

DNSvizor

review

2026-01-30

2026-01-30

31.25 € / h

1.00 h

(0.44%)

31.25 €

8

service

DNSvizor & Mirage

develop

2026-02-10

2026-02-16

31.25 € / h

9.00 h

(3.96%)

281.25 €

9

service

DNSvizor & NGIpkgs

develop

2026-01-11

2026-01-12

31.25 € / h

10.00 h

(4.4%)

312.50 €

10

service

NGIpkgs

organize

2026-01-30

2026-02-27

31.25 € / h

10.75 h

(4.73%)

335.94 €

11

service

NGIpkgs & Seppo

develop

2026-01-25

2026-01-27

31.25 € / h

14.00 h

(6.16%)

437.50 €

12

service

NGI Nix Forge

develop

2026-03-02

2026-03-27

31.25 € / h

79.50 h

(34.97%)

2484.38 €

13

service

NGI Nix Forge

review

2026-03-02

2026-03-16

31.25 € / h

8.00 h

(3.52%)

250.00 €

14

service

NGI Nix Forge

organize

2026-02-26

2026-03-27

31.25 € / h

26.00 h

(11.44%)

812.50 €

15

service

nimi

develop

2026-03-08

2026-03-08

31.25 € / h

1.00 h

(0.44%)

31.25 €

2/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

16

service

opam-nix

develop

2026-02-11

2026-02-11

31.25 € / h

1.00 h

(0.44%)

31.25 €

17

service

opam-nix

document

2026-02-04

2026-02-04

31.25 € / h

0.50 h

(0.22%)

15.62 €

18

service

Sylk

review

2026-02-23

2026-02-23

31.25 € / h

1.00 h

(0.44%)

31.25 €

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Summary

3/9

Details

#

Date

Duration

Scope

Action

References

Description

1

2025-12-23

2.00 h

Bonfire & NGIpkgs

develop

address reviewers’ concerns

2

2025-12-24

4.00 h

Bonfire & NGIpkgs

develop

update Bonfire and report issues upstream

3

2025-12-24

2.00 h

Bonfire & NGIpkgs

develop

update Bonfire to fix bugs

4

2025-12-25

6.00 h

Bonfire & NGIpkgs

develop

update and fix bugs

5

2025-12-26

1.00 h

Bonfire & NGIpkgs

develop

update to fix bugs

6

2025-12-29

2.00 h

Bonfire & NGIpkgs

develop

add more tests

7

2025-12-30

4.00 h

BEAM & NGIpkgs

develop

improve buildMix & mixRelease for packaging Elixir software

8

2026-01-01

4.00 h

Bonfire & NGIpkgs

develop

support other flavours

9

2026-01-03

4.00 h

Bonfire & NGIpkgs

develop

support other flavours, and make update more resilient

10

2026-01-04

2.00 h

Bonfire & NGIpkgs

develop

provide upstream with reproducers

11

2026-01-05

2.00 h

Bonfire & NGIpkgs

develop

update to latest version

12

2026-01-07

5.00 h

Bonfire & NGIpkgs

develop

fix updating

13

2026-01-09

2.00 h

Bonfire & NGIpkgs

develop

answer upstream’s questions

14

2026-01-11

5.00 h

DNSvizor & NGIpkgs

develop

replace hillingar to package MirageOS unikernels

15

2026-01-12

5.00 h

DNSvizor & NGIpkgs

develop

remove the need for --allow-import-from-derivation

4/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

#

Date

Duration

Scope

Action

References

Description

16

2026-01-25

4.00 h

NGIpkgs & Seppo

develop

begin packaging

17

2026-01-26

5.00 h

NGIpkgs & Seppo

develop

continue packaging

18

2026-01-27

5.00 h

NGIpkgs & Seppo

develop

continue packaging

19

2026-01-30

1.00 h

NGIpkgs

organize

weekly meeting

20

2026-01-30

1.00 h

DNSvizor

review

second round of discussion

21

2026-02-04

3.00 h

DNSvizor

debug

blame Thread-Local Storage (TLS) for runtime crash of DNSvizor built with Nix

22

2026-02-04

0.50 h

DNSvizor

develop

address reviewer concerns

23

2026-02-05

3.00 h

DNSvizor

develop

workaround longstanding runtime failure due to Thread-Local Storage in Solo5

24

2026-02-06

3.00 h

DNSvizor

develop

address reviewer’s concern about closure size

25

2026-02-04

0.50 h

opam-nix

document

address upstream concerns

26

2026-02-06

2.50 h

NGIpkgs

organize

weekly meeting

27

2026-02-10

3.00 h

DNSvizor & Mirage

develop

standardization of the build helper

28

2026-02-11

2.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

29

2026-02-11

1.00 h

DNSvizor & Mirage

develop

address reviewers’ concerns

30

2026-02-11

5.00 h

Bonfire

develop

update to 1.0.2-alpha.23

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

5/9

#

Date

Duration

Scope

Action

References

Description

31

2026-02-11

1.00 h

opam-nix

develop

address upstream-s concern

32

2026-02-13

1.00 h

NGIpkgs

organize

weekly meeting

33

2026-02-16

3.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

34

2026-02-19

5.00 h

Bonfire

develop

update to 1.0.2-alpha.32

35

2026-02-21

2.00 h

NGIpkgs

organize

weekly meeting

36

2026-02-21

1.00 h

NGIpkgs

organize

meeting with Ivan Mincik to understand his vision for NGIpkgs App Store

37

2026-02-24

1.50 h

NGIpkgs

organize

meeting with Valentin Gagarin and the Nix@NGI team to discuss Ivan’s Nix App Store

38

2026-02-23

2.00 h

Bonfire

develop

fix upstream lock file (again)

39

2026-02-23

1.00 h

Sylk

review

resurrect and improve fixes dropped by original author

40

2026-02-23

0.10 h

DNSvizor

develop

rebase due to conflicts

41

2026-02-26

2.50 h

NGI Nix Forge

organize

discuss with Ivan and the Nix@NGI team about Ivan’s vision

42

2026-02-27

1.75 h

NGIpkgs

organize

weekly meeting

43

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

44

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

45

2026-03-02

3.00 h

NGI Nix Forge

review

understand by rewriting from scratch

6/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

#

Date

Duration

Scope

Action

References

Description

46

2026-03-02

3.00 h

NGI Nix Forge

develop

package elm-watch

47

2026-03-03

3.00 h

NGI Nix Forge

develop

improve dev environment

48

2026-03-03

1.00 h

NGI Nix Forge

organize

answer questions

49

2026-03-04

4.00 h

NGI Nix Forge

develop

assess code quality of the UI

50

2026-03-04

2.50 h

NGI Nix Forge

organize

share progress and open issues

51

2026-03-05

4.00 h

NGI Nix Forge

review

review Fedi’s work

52

2026-03-06

1.50 h

NGI Nix Forge

organize

discuss nix-forge

53

2026-03-07

4.00 h

NGI Nix Forge

develop

track down and fix bug in Fedi’s branch

54

2026-03-08

1.00 h

nimi

develop

improve performance

55

2026-03-09

7.00 h

NGI Nix Forge

develop

rewrite in a more type-safe and idiomatic way

57

2026-03-10

2.00 h

NGI Nix Forge

organize

discuss UI design

58

2026-03-10

10.00 h

NGI Nix Forge

develop

implement discussed design

59

2026-03-16

2.00 h

NGI Nix Forge

organize

weekly meeting

60

2026-03-13

2.00 h

NGI Nix Forge

organize

weekly meeting

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

7/9

#

Date

Duration

Scope

Action

References

Description

61

2026-03-13

4.00 h

NGI Nix Forge

develop

try to support browser history

62

2026-03-11

3.00 h

NGI Nix Forge

develop

address review comments

63

2026-03-15

10.00 h

NGI Nix Forge

develop

fix routing bugs

64

2026-03-16

1.00 h

NGI Nix Forge

review

review Phani’s work

65

2026-03-16

6.00 h

NGI Nix Forge

develop

improve underlying model or the UI

66

2026-03-17

2.50 h

NGI Nix Forge

organize

design discussion with Ivan and Phani

67

2026-03-17

6.00 h

NGI Nix Forge

develop

implement routing for all pages

68

2026-03-17

4.00 h

NGI Nix Forge

organize

review Phani’s work with Phani

69

2026-03-19

1.00 h

NGI Nix Forge

develop

implement options listing for packager

70

2026-03-20

1.50 h

NGI Nix Forge

organize

weekly meeting

71

2026-03-22

5.00 h

NGI Nix Forge

develop

init options browsing

72

2026-03-23

5.00 h

NGI Nix Forge

develop

multiple fixes related to the UI

73

2026-03-25

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

74

2026-03-26

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

75

2026-03-26

2.00 h

NGI Nix Forge

develop

address reliability concerns of the dev environment

8/9

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

#

Date

Duration

Scope

Action

References

Description

76

2026-03-27

2.00 h

NGI Nix Forge

develop

implement pagination for /recipe/options

77

2026-03-27

2.50 h

NGI Nix Forge

organize

weekly meeting

78

2026-03-27

0.50 h

NGI Nix Forge

develop

address reviewer’s concerns

julminfo - 2026-01-27 - Invoice #org3sale2 - contract n°2026-03 — Details

9/9

\ No newline at end of file diff --git a/tests/Tests/Invoice/org3sale3.html b/tests/Tests/Invoice/org3sale3.html index bca05da..80317c9 100644 --- a/tests/Tests/Invoice/org3sale3.html +++ b/tests/Tests/Invoice/org3sale3.html @@ -1,2 +1,2 @@ -julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe

Invoice

InvoiceIdentifier:

org3sale3

InvoiceType:

sale

InvoiceOrders:
-

contract n°2026-FixMe

InvoiceEmittedOn:

2026-03-31

InvoicePaymentDueBefore:

2026-05-01

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Buyer:
Name:

Nix@NGI Team

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2026-01-30

2026-03-27

163.35 h

5104.69 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-05-02): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe

1/6

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

Bonfire

develop

2026-02-11

2026-02-23

31.25 € / h

12.00 h

(7.35%)

375.00 €

2

service

Collabora Desktop

review

2026-02-28

2026-02-28

31.25 € / h

4.00 h

(2.45%)

125.00 €

3

service

DNSvizor

debug

2026-02-04

2026-02-04

31.25 € / h

3.00 h

(1.84%)

93.75 €

4

service

DNSvizor

develop

2026-02-04

2026-02-23

31.25 € / h

6.60 h

(4.04%)

206.25 €

5

service

DNSvizor

review

2026-01-30

2026-01-30

31.25 € / h

1.00 h

(0.61%)

31.25 €

6

service

DNSvizor & Mirage

develop

2026-02-10

2026-02-16

31.25 € / h

9.00 h

(5.51%)

281.25 €

7

service

NGIpkgs

organize

2026-01-30

2026-02-27

31.25 € / h

10.75 h

(6.58%)

335.94 €

8

service

NGI Nix Forge

develop

2026-03-02

2026-03-27

31.25 € / h

79.50 h

(48.67%)

2484.38 €

9

service

NGI Nix Forge

review

2026-03-02

2026-03-16

31.25 € / h

8.00 h

(4.9%)

250.00 €

10

service

NGI Nix Forge

organize

2026-02-26

2026-03-27

31.25 € / h

26.00 h

(15.92%)

812.50 €

11

service

nimi

develop

2026-03-08

2026-03-08

31.25 € / h

1.00 h

(0.61%)

31.25 €

12

service

opam-nix

develop

2026-02-11

2026-02-11

31.25 € / h

1.00 h

(0.61%)

31.25 €

13

service

opam-nix

document

2026-02-04

2026-02-04

31.25 € / h

0.50 h

(0.31%)

15.62 €

14

service

Sylk

review

2026-02-23

2026-02-23

31.25 € / h

1.00 h

(0.61%)

31.25 €

2/6

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2026-01-30

1.00 h

NGIpkgs

organize

weekly meeting

2

2026-01-30

1.00 h

DNSvizor

review

second round of discussion

3

2026-02-04

3.00 h

DNSvizor

debug

blame Thread-Local Storage (TLS) for runtime crash of DNSvizor built with Nix

4

2026-02-04

0.50 h

DNSvizor

develop

address reviewer concerns

5

2026-02-05

3.00 h

DNSvizor

develop

workaround longstanding runtime failure due to Thread-Local Storage in Solo5

6

2026-02-06

3.00 h

DNSvizor

develop

address reviewer’s concern about closure size

7

2026-02-04

0.50 h

opam-nix

document

address upstream concerns

8

2026-02-06

2.50 h

NGIpkgs

organize

weekly meeting

9

2026-02-10

3.00 h

DNSvizor & Mirage

develop

standardization of the build helper

10

2026-02-11

2.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

11

2026-02-11

1.00 h

DNSvizor & Mirage

develop

address reviewers’ concerns

12

2026-02-11

5.00 h

Bonfire

develop

update to 1.0.2-alpha.23

13

2026-02-11

1.00 h

opam-nix

develop

address upstream-s concern

14

2026-02-13

1.00 h

NGIpkgs

organize

weekly meeting

15

2026-02-16

3.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe — Details

3/6

#

Date

Duration

Scope

Action

References

Description

16

2026-02-19

5.00 h

Bonfire

develop

update to 1.0.2-alpha.32

17

2026-02-21

2.00 h

NGIpkgs

organize

weekly meeting

18

2026-02-21

1.00 h

NGIpkgs

organize

meeting with Ivan Mincik to understand his vision for NGIpkgs App Store

19

2026-02-24

1.50 h

NGIpkgs

organize

meeting with Valentin Gagarin and the Nix@NGI team to discuss Ivan’s Nix App Store

20

2026-02-23

2.00 h

Bonfire

develop

fix upstream lock file (again)

21

2026-02-23

1.00 h

Sylk

review

resurrect and improve fixes dropped by original author

22

2026-02-23

0.10 h

DNSvizor

develop

rebase due to conflicts

23

2026-02-26

2.50 h

NGI Nix Forge

organize

discuss with Ivan and the Nix@NGI team about Ivan’s vision

24

2026-02-27

1.75 h

NGIpkgs

organize

weekly meeting

25

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

26

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

27

2026-03-02

3.00 h

NGI Nix Forge

review

understand by rewriting from scratch

28

2026-03-02

3.00 h

NGI Nix Forge

develop

package elm-watch

29

2026-03-03

3.00 h

NGI Nix Forge

develop

improve dev environment

30

2026-03-03

1.00 h

NGI Nix Forge

organize

answer questions

4/6

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe — Details

#

Date

Duration

Scope

Action

References

Description

31

2026-03-04

4.00 h

NGI Nix Forge

develop

assess code quality of the UI

32

2026-03-04

2.50 h

NGI Nix Forge

organize

share progress and open issues

33

2026-03-05

4.00 h

NGI Nix Forge

review

review Fedi’s work

34

2026-03-06

1.50 h

NGI Nix Forge

organize

discuss nix-forge

35

2026-03-07

4.00 h

NGI Nix Forge

develop

track down and fix bug in Fedi’s branch

36

2026-03-08

1.00 h

nimi

develop

improve performance

37

2026-03-09

7.00 h

NGI Nix Forge

develop

rewrite in a more type-safe and idiomatic way

39

2026-03-10

2.00 h

NGI Nix Forge

organize

discuss UI design

40

2026-03-10

10.00 h

NGI Nix Forge

develop

implement discussed design

41

2026-03-16

2.00 h

NGI Nix Forge

organize

weekly meeting

42

2026-03-13

2.00 h

NGI Nix Forge

organize

weekly meeting

43

2026-03-13

4.00 h

NGI Nix Forge

develop

try to support browser history

44

2026-03-11

3.00 h

NGI Nix Forge

develop

address review comments

45

2026-03-15

10.00 h

NGI Nix Forge

develop

fix routing bugs

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe — Details

5/6

#

Date

Duration

Scope

Action

References

Description

46

2026-03-16

1.00 h

NGI Nix Forge

review

review Phani’s work

47

2026-03-16

6.00 h

NGI Nix Forge

develop

improve underlying model or the UI

48

2026-03-17

2.50 h

NGI Nix Forge

organize

design discussion with Ivan and Phani

49

2026-03-17

6.00 h

NGI Nix Forge

develop

implement routing for all pages

50

2026-03-17

4.00 h

NGI Nix Forge

organize

review Phani’s work with Phani

51

2026-03-19

1.00 h

NGI Nix Forge

develop

implement options listing for packager

52

2026-03-20

1.50 h

NGI Nix Forge

organize

weekly meeting

53

2026-03-22

5.00 h

NGI Nix Forge

develop

init options browsing

54

2026-03-23

5.00 h

NGI Nix Forge

develop

multiple fixes related to the UI

55

2026-03-25

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

56

2026-03-26

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

57

2026-03-26

2.00 h

NGI Nix Forge

develop

address reliability concerns of the dev environment

58

2026-03-27

2.00 h

NGI Nix Forge

develop

implement pagination for /recipe/options

59

2026-03-27

2.50 h

NGI Nix Forge

organize

weekly meeting

60

2026-03-27

0.50 h

NGI Nix Forge

develop

address reviewer’s concerns

6/6

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-FixMe — Details

\ No newline at end of file +julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-07, February 2026

Invoice

InvoiceIdentifier:

org3sale3

InvoiceType:

sale

InvoiceOrders:
—

contract n°2026-07, February 2026

InvoiceEmittedOn:

2026-03-31

InvoicePaymentDueBefore:

2026-05-01

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Admin:
Name:

Julien Moutinho

Email:
Buyer:
Name:

Stichting NixOS Foundation

Address:

Korte Lijnbaanssteeg 1-4318

1012 SL Amsterdam Netherlands

Admin:
Department:
Name:

Nix@NGI Team

Email:
Admin:
Name:

Daniel Ramirez

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2026-01-30

2026-02-28

51.35 h

1604.68 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-05-02): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-07, February 2026

1/4

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

Bonfire

develop

2026-02-11

2026-02-23

31.25 € / h

12.00 h

(23.37%)

375.00 €

2

service

Collabora Desktop

review

2026-02-28

2026-02-28

31.25 € / h

4.00 h

(7.79%)

125.00 €

3

service

DNSvizor

debug

2026-02-04

2026-02-04

31.25 € / h

3.00 h

(5.84%)

93.75 €

4

service

DNSvizor

develop

2026-02-04

2026-02-23

31.25 € / h

6.60 h

(12.85%)

206.25 €

5

service

DNSvizor

review

2026-01-30

2026-01-30

31.25 € / h

1.00 h

(1.95%)

31.25 €

6

service

DNSvizor & Mirage

develop

2026-02-10

2026-02-16

31.25 € / h

9.00 h

(17.53%)

281.25 €

7

service

NGIpkgs

organize

2026-01-30

2026-02-27

31.25 € / h

10.75 h

(20.93%)

335.94 €

8

service

NGI Nix Forge

organize

2026-02-26

2026-02-26

31.25 € / h

2.50 h

(4.87%)

78.12 €

9

service

opam-nix

develop

2026-02-11

2026-02-11

31.25 € / h

1.00 h

(1.95%)

31.25 €

10

service

opam-nix

document

2026-02-04

2026-02-04

31.25 € / h

0.50 h

(0.97%)

15.62 €

11

service

Sylk

review

2026-02-23

2026-02-23

31.25 € / h

1.00 h

(1.95%)

31.25 €

2/4

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-07, February 2026 — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2026-01-30

1.00 h

NGIpkgs

organize

weekly meeting

2

2026-01-30

1.00 h

DNSvizor

review

second round of discussion

3

2026-02-04

3.00 h

DNSvizor

debug

blame Thread-Local Storage (TLS) for runtime crash of DNSvizor built with Nix

4

2026-02-04

0.50 h

DNSvizor

develop

address reviewer concerns

5

2026-02-05

3.00 h

DNSvizor

develop

workaround longstanding runtime failure due to Thread-Local Storage in Solo5

6

2026-02-06

3.00 h

DNSvizor

develop

address reviewer’s concern about closure size

7

2026-02-04

0.50 h

opam-nix

document

address upstream concerns

8

2026-02-06

2.50 h

NGIpkgs

organize

weekly meeting

9

2026-02-10

3.00 h

DNSvizor & Mirage

develop

standardization of the build helper

10

2026-02-11

2.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

11

2026-02-11

1.00 h

DNSvizor & Mirage

develop

address reviewers’ concerns

12

2026-02-11

5.00 h

Bonfire

develop

update to 1.0.2-alpha.23

13

2026-02-11

1.00 h

opam-nix

develop

address upstream-s concern

14

2026-02-13

1.00 h

NGIpkgs

organize

weekly meeting

15

2026-02-16

3.00 h

DNSvizor & Mirage

develop

address reviewer’s concerns

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-07, February 2026 — Details

3/4

#

Date

Duration

Scope

Action

References

Description

16

2026-02-19

5.00 h

Bonfire

develop

update to 1.0.2-alpha.32

17

2026-02-21

2.00 h

NGIpkgs

organize

weekly meeting

18

2026-02-21

1.00 h

NGIpkgs

organize

meeting with Ivan Mincik to understand his vision for NGIpkgs App Store

19

2026-02-24

1.50 h

NGIpkgs

organize

meeting with Valentin Gagarin and the Nix@NGI team to discuss Ivan’s Nix App Store

20

2026-02-23

2.00 h

Bonfire

develop

fix upstream lock file (again)

21

2026-02-23

1.00 h

Sylk

review

resurrect and improve fixes dropped by original author

22

2026-02-23

0.10 h

DNSvizor

develop

rebase due to conflicts

23

2026-02-26

2.50 h

NGI Nix Forge

organize

discuss with Ivan and the Nix@NGI team about Ivan’s vision

24

2026-02-27

1.75 h

NGIpkgs

organize

weekly meeting

25

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

26

2026-02-28

2.00 h

Collabora Desktop

review

try to reproduce and investigate failing checks

4/4

julminfo - 2026-03-31 - Invoice #org3sale3 - contract n°2026-07, February 2026 — Details

\ No newline at end of file diff --git a/tests/Tests/Invoice/org3sale4.html b/tests/Tests/Invoice/org3sale4.html new file mode 100644 index 0000000..6b3145f --- /dev/null +++ b/tests/Tests/Invoice/org3sale4.html @@ -0,0 +1,2 @@ + +julminfo - 2026-03-31 - Invoice #org3sale4 - contract n°2026-07, Mars 2026

Invoice

InvoiceIdentifier:

org3sale4

InvoiceType:

sale

InvoiceOrders:
—

contract n°2026-07, Mars 2026

InvoiceEmittedOn:

2026-03-31

InvoicePaymentDueBefore:

2026-05-01

Seller:
Name:

julminfo

Address:

3, place du Monument

Mairie - Bureau 1

23340 Gentioux-Pigerolles France

SIREN:

942798083

IBAN:

FR18 2004 1010 0820 3735 3D02 912

Admin:
Name:

Julien Moutinho

Email:
Buyer:
Name:

Stichting NixOS Foundation

Address:

Korte Lijnbaanssteeg 1-4318

1012 SL Amsterdam Netherlands

Admin:
Department:
Name:

Nix@NGI Team

Email:
Admin:
Name:

Daniel Ramirez

Email:

Grand totals

Time frame

Workload

To pay (excl. taxes)

2026-03-02

2026-03-27

112.00 h

3500.01 €

Mandatory legal notices

—

VAT not applicable, art. 293 B of the French General Tax Code.

—

Fixed compensation for recovery costs in case of late payment: 40.00 €

—

Late payment penalty rate (applicable from 2026-05-02): 12.15 % × unpaid amount × number of days late / 365.25

julminfo - 2026-03-31 - Invoice #org3sale4 - contract n°2026-07, Mars 2026

1/5

Summary

#

Type

Scope

Action

Time frame

Rate

(excl. taxes.)

Quantity

Total

(excl. taxes.)

1

service

NGI Nix Forge

develop

2026-03-02

2026-03-27

31.25 € / h

79.50 h

(70.98%)

2484.38 €

2

service

NGI Nix Forge

review

2026-03-02

2026-03-16

31.25 € / h

8.00 h

(7.14%)

250.00 €

3

service

NGI Nix Forge

organize

2026-03-03

2026-03-27

31.25 € / h

23.50 h

(20.98%)

734.38 €

4

service

nimi

develop

2026-03-08

2026-03-08

31.25 € / h

1.00 h

(0.89%)

31.25 €

2/5

julminfo - 2026-03-31 - Invoice #org3sale4 - contract n°2026-07, Mars 2026 — Summary

Details

#

Date

Duration

Scope

Action

References

Description

1

2026-03-02

3.00 h

NGI Nix Forge

review

understand by rewriting from scratch

2

2026-03-02

3.00 h

NGI Nix Forge

develop

package elm-watch

3

2026-03-03

3.00 h

NGI Nix Forge

develop

improve dev environment

4

2026-03-03

1.00 h

NGI Nix Forge

organize

answer questions

5

2026-03-04

4.00 h

NGI Nix Forge

develop

assess code quality of the UI

6

2026-03-04

2.50 h

NGI Nix Forge

organize

share progress and open issues

7

2026-03-05

4.00 h

NGI Nix Forge

review

review Fedi’s work

8

2026-03-06

1.50 h

NGI Nix Forge

organize

discuss nix-forge

9

2026-03-07

4.00 h

NGI Nix Forge

develop

track down and fix bug in Fedi’s branch

10

2026-03-08

1.00 h

nimi

develop

improve performance

11

2026-03-09

7.00 h

NGI Nix Forge

develop

rewrite in a more type-safe and idiomatic way

13

2026-03-10

2.00 h

NGI Nix Forge

organize

discuss UI design

14

2026-03-10

10.00 h

NGI Nix Forge

develop

implement discussed design

15

2026-03-16

2.00 h

NGI Nix Forge

organize

weekly meeting

julminfo - 2026-03-31 - Invoice #org3sale4 - contract n°2026-07, Mars 2026 — Details

3/5

#

Date

Duration

Scope

Action

References

Description

16

2026-03-13

2.00 h

NGI Nix Forge

organize

weekly meeting

17

2026-03-13

4.00 h

NGI Nix Forge

develop

try to support browser history

18

2026-03-11

3.00 h

NGI Nix Forge

develop

address review comments

19

2026-03-15

10.00 h

NGI Nix Forge

develop

fix routing bugs

20

2026-03-16

1.00 h

NGI Nix Forge

review

review Phani’s work

21

2026-03-16

6.00 h

NGI Nix Forge

develop

improve underlying model or the UI

22

2026-03-17

2.50 h

NGI Nix Forge

organize

design discussion with Ivan and Phani

23

2026-03-17

6.00 h

NGI Nix Forge

develop

implement routing for all pages

24

2026-03-17

4.00 h

NGI Nix Forge

organize

review Phani’s work with Phani

25

2026-03-19

1.00 h

NGI Nix Forge

develop

implement options listing for packager

26

2026-03-20

1.50 h

NGI Nix Forge

organize

weekly meeting

27

2026-03-22

5.00 h

NGI Nix Forge

develop

init options browsing

28

2026-03-23

5.00 h

NGI Nix Forge

develop

multiple fixes related to the UI

29

2026-03-25

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

30

2026-03-26

2.00 h

NGI Nix Forge

develop

address reviewer’s concerns

4/5

julminfo - 2026-03-31 - Invoice #org3sale4 - contract n°2026-07, Mars 2026 — Details

#

Date

Duration

Scope

Action

References

Description

31

2026-03-26

2.00 h

NGI Nix Forge

develop

address reliability concerns of the dev environment

32

2026-03-27

2.00 h

NGI Nix Forge

develop

implement pagination for /recipe/options

33

2026-03-27

2.50 h

NGI Nix Forge

organize

weekly meeting

34

2026-03-27

0.50 h

NGI Nix Forge

develop

address reviewer’s concerns

julminfo - 2026-03-31 - Invoice #org3sale4 - contract n°2026-07, Mars 2026 — Details

5/5

\ No newline at end of file diff --git a/tests/Tests/Organization.hs b/tests/Tests/Organization.hs index 5af3d79..3541d03 100644 --- a/tests/Tests/Organization.hs +++ b/tests/Tests/Organization.hs @@ -27,8 +27,8 @@ data EntityId = EntityJulmInfo | EntityJulm | EntityUrssaf - | EntityNixOSFoundationNGITeam | EntityNixOSFoundation + | EntityNixOSFoundationNGITeam | EntityNixOSFoundationFinance | EntityUpwork | EntityDanielRamirez @@ -119,16 +119,22 @@ instance Get (Organization EntityId) EntityId where { orgEntity , orgParts = [ "Admin" := EntityNixOSFoundationFinance & get - , "Department" := EntityNixOSFoundationNGITeam & get ] } EntityNixOSFoundationFinance -> Organization{orgEntity, orgParts = []} EntityNixOSFoundationNGITeam -> Organization - { orgEntity = EntityNixOSFoundationNGITeam + { orgEntity = EntityNixOSFoundation , orgParts = - [ "Admin" := EntityDanielRamirez & get + [ "Admin" := EntityNixOSFoundationFinance & get + , "Department" := + Organization + { orgEntity + , orgParts = + [ "Admin" := EntityDanielRamirez & get + ] + } ] } EntityUpwork -> -- 2.49.0