Skip to content

Commit 3b6fb6f

Browse files
committed
doc: high-performance builders
Closes: fedora-copr#2971 Relates: fedora-copr#2241
1 parent 6af7352 commit 3b6fb6f

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

doc/user_documentation.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,12 @@ though they are recommended to do so. In particular, kernel modules
631631
may be built in Copr, as long as they don't violate the license
632632
requirements in point 2. above.
633633

634+
.. _`Can you lend me powerful/faster Copr builders?`:
635+
636+
.. rubric:: Can you lend me faster Copr builders? :ref:`¶ <Can you lend me powerful/faster Copr builders?>`
637+
638+
Yes, glad you asking! But you don't always want this, see — :ref:`high_performance_builders`.
639+
634640
.. _`Is it safe to use Copr?`:
635641

636642
.. rubric:: Is it safe to use Copr? :ref:`¶ <Is it safe to use Copr?>`
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
:orphan:
2+
3+
.. _high_performance_builders:
4+
5+
Builders in Fedora Copr are too slow!
6+
=====================================
7+
8+
The *normal* Fedora Copr builders are typically fast enough for the vast majority
9+
of package builds. However, some package builds are extremely
10+
resource-intensive, and our *normal builders* struggle with them. A notable
11+
example is Blink_-based browsers, which can take even more than 24 hours to
12+
build.
13+
14+
From a build system perspective, this isn't a problem. You can simply specify
15+
``--timeout 180000`` (in seconds) and be prepared to wait for the build to
16+
finish. But if you want to expedite your builds, you do have the option to
17+
request *high-performance builders*.
18+
19+
Pros & Cons of *high-performance builders*
20+
------------------------------------------
21+
22+
Once you get them, the *high-performance builders* will handle your builds much
23+
faster. According to the specification as of October 2023, they are
24+
approximately 8 times faster than the *normal builders*, but the actual speedup
25+
is very task-dependent.
26+
27+
The downside is that they are in limited supply. If other users request them at
28+
the same time as you, you'll compete with others, and you may spend a bit longer
29+
waiting in the queue until one such machine is allocated for you (*starting*
30+
phase of the build).
31+
32+
Also, because these machines are costly, we never pre-allocate them (as we do
33+
with the normal builders to generally minimize the initial waiting). We only
34+
start these *high-performance* ones when a specific build request them. Waiting
35+
for the corresponding machine to start may take several additional minutes.
36+
37+
It's worth noting that when you configure your project, chroot, or package to
38+
use *high-performance builders*, you will get them, sooner or later. There's no
39+
magical "fallback to normal builders". **The rule of thumb** is to avoid using
40+
*high-performance builders* for builds that are expected to complete in less than
41+
two hours on *normal builders*.
42+
43+
How to request *high-performance builders*
44+
------------------------------------------
45+
46+
As of October 2023, we only support *high-performance builders* for ``x86`` and
47+
``aarch64`` architectures. Please think carefully (ensure you understand the
48+
previous section) and submit an issue_. The pattern we have to configure for you
49+
is basically a Python regexp in a format ``owner/project/chroot/package``, e.g.
50+
``@asahi/kernel/.(x86_64|aarch64)/kernel.*``.
51+
52+
.. _Blink: https://en.wikipedia.org/wiki/Blink_(browser_engine)
53+
.. _issue: https://github.com/fedora-copr/copr/issues

0 commit comments

Comments
 (0)