quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

INFRASTRUCTURE.md (7835B)


      1 <!--
      2 Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
      3 
      4 SPDX-License-Identifier: curl
      5 -->
      6 
      7 # Infrastructure in the curl project
      8 
      9 Overview of infrastructure we maintain, host and run in the project for the
     10 project.
     11 
     12 ## git repository
     13 
     14 Since 2010, the main curl git repository has been hosted by GitHub, available
     15 at https://github.com/curl/curl.
     16 
     17 We also use the issue tracker, pull requests and discussions on GitHub.
     18 
     19 curl has an "enterprise account" on GitHub and is an "organization" on the
     20 site.
     21 
     22 We accept sponsorship via GitHub Sponsors.
     23 
     24 ## CI services
     25 
     26 For every pull request and git push to the master repository, a number of
     27 build and testing jobs are run on a set of different CI services. The exact
     28 services vary over time. GitHub Actions and AppVeyor are the primary ones
     29 these days.
     30 
     31 ## Test Clutch
     32 
     33 A [Test Clutch](https://github.com/dfandrich/testclutch) instance generates
     34 regular reports on curl CI test results at https://testclutch.curl.se/ as well
     35 as writing comments on curl pull requests whose tests have failed. The jobs
     36 are hosted on a Virtuozzo Application Platform PaaS instance and is managed by
     37 Dan Fandrich. The configuration code is available and managed at
     38 https://github.com/dfandrich/testclutch-curl-web
     39 
     40 ## Autobuilds
     41 
     42 The curl autobuild system is a set of scripts that build and test curl and
     43 send all output logs back to the autobuild server. The results are
     44 continuously collected and visualized on the curl website at
     45 <https://curl.se/dev/builds.html>.
     46 
     47 The autobuild system and server is maintained by Daniel Stenberg.
     48 
     49 ## OSS-Fuzz
     50 
     51 Google runs the [OSS-Fuzz](https://google.github.io/oss-fuzz/) project which
     52 also runs fuzzing on curl code, non-stop, in their infrastructure and they
     53 send us emails in the rare instances they actually find something.
     54 
     55 OSS-Fuzz notifies those that are members in the "curl team". Any curl
     56 maintainer who wants to is welcome to participate. It requires a Google
     57 account.
     58 
     59 ## Coverity
     60 
     61 We regularly run our code through the [Coverity static code
     62 analyzer](https://scan.coverity.com/) thanks to them offering this service to
     63 us for free.
     64 
     65 ## CodeSonar
     66 
     67 [CodeSonar](https://codesecure.com/our-products/codesonar/) analyzes the curl
     68 source code daily and emails Daniel Stenberg whenever it finds suspected
     69 problems in the source code. I hope and expect that we can invite other
     70 maintainers to access these reports soon.
     71 
     72 ## Domain names
     73 
     74 The project runs services and website using a few different curl related
     75 domain names, including `curl.se` and `curl.dev`. Daniel Stenberg owns these
     76 domain names.
     77 
     78 Until a few years ago, the curl website was present at `curl.haxx.se`. The
     79 `haxx.se` domain is owned by Haxx AB, administrated by Daniel Stenberg. The
     80 curl.haxx.se name is meant to keep working and be redirecting to curl.se for
     81 the foreseeable future.
     82 
     83 ## Websites
     84 
     85 The main curl website at `curl.se` is maintained by curl maintainers and the
     86 content is available and managed at https://github.com/curl/curl-www. The site
     87 updates from git and runs make every 20 minutes. Any change pushed to git can
     88 thus take up to 20 minutes until it takes effect on the origin server.
     89 
     90 The content on `curl.dev` is available and managed at
     91 https://github.com/curl/curl.dev/
     92 
     93 The content on `everything-curl.dev` is available and managed at
     94 https://github.com/curl/everything-curl/
     95 
     96 The machine hosting the website contents for these three sites is owned by
     97 Haxx AB and is primarily managed by Daniel Stenberg (co-owner of the Haxx
     98 company). The machine is physically located in Sweden.
     99 
    100 curl release tarballs are hosted on https://curl.se/download.html. They are
    101 uploaded there at release-time by the release manager.
    102 
    103 curl-for-win downloads are hosted on https://curl.se/windows and are uploaded
    104 to the server by Viktor Szakats.
    105 
    106 curl-for-QNX downloads are hosted on <https://curl.se/qnx> and are uploaded to
    107 the server by Daniel Stenberg.
    108 
    109 Daily release tarball-like snapshots are generated automatically and are
    110 provided for download at <https://curl.se/snapshots/>.
    111 
    112 CA certificate bundles are extracted from the Firefox source code, hosted by
    113 Mozilla and converted to PEM file format and is offered for download. The
    114 conversion checks for updates daily. The bundle is provided for download at
    115 <https://curl.se/docs/caextract.html>.
    116 
    117 There is an automated "download check bot" that runs twice daily to scan for
    118 available curl downloads to populate the curl download page appropriately with
    119 the correct updated information. The bot uses URLs and patterns for all
    120 download packages and is maintained in a database, maintained by Daniel
    121 Stenberg and Dan Fandrich.
    122 
    123 The TLS certificate for the origin curl web server is automatically updated
    124 from Let's Encrypt.
    125 
    126 ## CDN
    127 
    128 Fastly runs the Content Delivery Network (CDN) that fronts all the curl
    129 websites. The CDN caches content that it gets from the origin server.
    130 Recently, roughly 99.99% of web requests are satisfied by the CDN without
    131 having to reach the origin.
    132 
    133 The CDN caches different content at different lengths depending on the
    134 content-type. The caching thus adds to the time for a change to have an effect
    135 on the site from the moment it gets pushed to the git repository.
    136 
    137 Using this setup, we provide four IPv4 addresses and eight IPv6 addresses for
    138 anycast access to the site. Should be snappy from virtually everywhere across
    139 the globe.
    140 
    141 The CDN servers support HTTP/1, HTTP/2 and HTTP/3. They set HSTS for a year.
    142 The `HTTP://` version of the site redirects to `HTTPS://`.
    143 
    144 Fastly manages the TLS certificates from Let's Encrypt for the servers they
    145 run on the behalf of curl.
    146 
    147 ## Containers
    148 
    149 The curl project offer container builds of curl. The source repository for
    150 them is located at <https://github.com/curl/curl-container>.
    151 
    152 Container images are hosted at <https://quay.io/repository/curl/curl> and
    153 <https://hub.docker.com/r/curlimages/curl>
    154 
    155 ## DNS
    156 
    157 The primary domain name, `curl.se` is managed by Kirei and is offered over
    158 fault-tolerant anycast servers. High availability and fast access for
    159 everyone.
    160 
    161 The actual physical DNS files and origin bind instance is managed by Daniel
    162 Stenberg.
    163 
    164 ## Mailing lists
    165 
    166 The curl related mailing lists are hosted by Haxx AB on `lists.haxx.se` and
    167 are maintained by Daniel Stenberg. This includes the mailman2 and Postfix
    168 instances used for this.
    169 
    170 ## Email
    171 
    172 We use a few rare additional curl related email aliases in the curl domains.
    173 They go through the mail server `mail.haxx.se` maintained by Daniel Stenberg
    174 
    175 ## Bug-bounty
    176 
    177 We run a [bug-bounty](https://curl.se/docs/bugbounty.html) on HackerOne. The
    178 setup runs entirely at https://hackerone.com/curl.
    179 
    180 The money part for the bug bounty is sponsored by the [Internet Bug
    181 Bounty](https://hackerone.com/ibb).
    182 
    183 ## Open Collective
    184 
    185 We use [Open Collective](https://opencollective.com/curl) as our "fiscal
    186 host". All money sent to and received by the curl project is managed by Open
    187 Collective.
    188 
    189 ## Merchandise
    190 
    191 We have stickers, coffee mugs and coasters. They are managed by Daniel who
    192 sits on the inventory. The best way to get your hands on curl merchandise is
    193 to attend events where Daniel is physically.
    194 
    195 ## Chat
    196 
    197 Some curl developers, maintainers, users and enthusiasts use IRC for real-time
    198 chat about curl and related topics. This done in the `#curl` channel on the
    199 `libra.chat` IRC network. **Daniel Stenberg** (`bagder`) is registered owner
    200 of the channel. We do not run any IRC servers or services ourselves.
    201 
    202 `curelbot` is a service in the channel that shows details about GitHub issues
    203 and pull requests when publicly mentioned using #[number]. The bot is run by
    204 user `TheAssassin`.
    205 
    206 There is a Matrix bridge to the IRC channel called `matrix.curl.se`. The
    207 bridge is setup and run by **Sergio Durigan Junior** and **Daniel Stenberg**.
    208 
    209 [curl online chat documentation](https://curl.se/docs/irc.html)