Commit graph

430 commits

Author SHA1 Message Date
Timothy Flynn
db47cc41f8 Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00
Timothy Flynn
93712b24bf Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Timothy Flynn
950e819ee7 Everywhere: Hoist the Utilities folder to the top-level 2024-11-10 12:50:45 +01:00
Timothy Flynn
22e0eeada2 Everywhere: Hoist the Services folder to the top-level 2024-11-10 12:50:45 +01:00
Timothy Flynn
f9df95af50 CI: Use clang for js artifacts on Linux
We have optimizations that only work with clang (namely, our use of
FLATTEN in the bytecode interpreter).
2024-11-08 11:29:18 -07:00
Timothy Flynn
74fe899d79 CI: Use the distribution release configuration for js artifacts 2024-11-08 11:29:18 -07:00
Andrew Kaster
f4124c7f40 CI+DevContainer+Documentation: Remove install steps for ffmpeg libs 2024-11-08 11:10:31 -07:00
Timothy Flynn
acc74f5e72 CI: Upgrade to macOS 15
Some checks are pending
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
For some reason, Microsoft have decided to remove Xcode 16 from macOS 14
images. We require Xcode 16 for Swift 6.

See: https://github.com/actions/runner-images/issues/10703

Because macOS 15 images are still in preview, their availability is much
lower than macOS 14 images. To hopefully alleviate the amount of time we
are waiting in the runner queue, for now this only upgrades the workflow
which uses Swift.
2024-11-07 19:30:34 -05:00
Timothy Flynn
80c6268431 Meta+LibJS: Upgrade to prettier version 3.3.3
Prettier v3 was released over a year ago, and most users will have it by
default by now.
2024-11-06 15:10:27 -05:00
Timothy Flynn
5681dbee64 Meta: Move the vcpkg installation/cache directories under Build
In addition to changing the build-type dependent build directories, we
can take this opportunity to move the vcpkg cache directory to the Build
folder itself. This probably isn't 100% needed, but it ensures that no
leftover artifacts are used from non-dynamic vcpkg builds, and it's also
generally nice to have all build artifacts under Build.
2024-11-06 10:38:57 -07:00
sideshowbarker
d9124c8058 GitHub: Fix grammar error/typo in bug_report.yml issue template 2024-10-31 10:25:27 +01:00
sideshowbarker
8d52c72b3a GitHub: For issue reports, move to using structured template
This change helps to ensure issue authors include the details needed to
reproduce problems — including repro steps, expected behavior, a reduced
test case, and logs/backtrace.
2024-10-31 09:18:08 +01:00
Andrew Kaster
c4f7361a5b Meta: Add a vcpkg cache to the devcontainer
This also means that the prebuilt devcontainer will have a populated
vcpkg binary cache, speeding up the first build by a lot.
2024-10-14 15:55:23 -06:00
Ali Mohammad Pur
cb4b2ca681 Meta: Avoid messing with the system python in CI
This uses the setup-python action in the setup action to install python
3.12, and removes the --break-system-packages hack that the system pip
requires.
2024-10-07 11:45:21 -06:00
Timothy Flynn
6ee1c4c634 CI: Install pyyaml from pip
Homebrew has disabled the pyyaml package for some reason.
2024-10-06 09:42:35 -04:00
Timothy Flynn
c412181683 CI: Switch Linux runners to Ubuntu 24.04
Some checks are pending
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
2024-10-02 06:41:20 -04:00
Timothy Flynn
04b45a8961 CI: Switch to the stable Xcode 16 toolchain
We had to use beta before Xcode 16 was officially released, but we can
now use the stable version.
2024-10-02 06:41:20 -04:00
Jelle Raaijmakers
5661da78a4 CI: Use explicit label for test262 workflow
Merely specifying `self-hosted` is not enough - to get closer to
reproducible timings, we want these jobs to run on dedicated hardware.
The `test262-runner` label was introduced for runners that offer this.
2024-10-02 06:40:27 -04:00
Andrew Kaster
2575cfb14c CI: Convert lint job to macOS and install swift-format
swift-format is only packaged for homebrew, Arch, and nixpkgs at the
moment. Rather than installing swiftly and a swift toolchain, let's
change the job to run on macOS.
2024-10-01 13:33:05 -06:00
dependabot[bot]
3385eb43f4 CI: Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.8
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.4 to 4.6.8.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.4...v4.6.8)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 10:14:34 -06:00
Jelle Raaijmakers
57783eff24 LibMedia: Convert OggLoader into generic FFmpegLoader
This loader supports whatever format libavformat and libavcodec can
handle. Currently only seekable streams are supported, and we still have
some limitations as to the number of channels and sample format.

Plays all non-streaming audio files at:

  https://tools.woolyss.com/html5-audio-video-tester/
2024-09-30 18:48:12 +02:00
Timothy Flynn
39accee863 CI: Install rsync on the test262 runner
Some checks are pending
CI / Lagom (false, FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-22.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
It is now failing with the following error:

     Unable to locate executable file: rsync.
2024-09-19 14:54:20 -04:00
Jelle Raaijmakers
1b267abf36 LibMedia: Link to avformat as well
This allows us to process container formats in future commits.
2024-09-12 10:01:19 +02:00
dependabot[bot]
25e5ccd376 CI: Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.3 to 4.6.4.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.3...v4.6.4)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 10:14:43 -06:00
Timothy Flynn
ba36312864 CI: Remove outdated references to Serenity vs. toolchain ccache
Some checks are pending
CI / Lagom (false, FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-22.04, Linux, GNU) (push) Waiting to run
CI / Lagom (true, NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-22.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
The toolchain ccache no longer exists. Remove it and the "Serenity"
prefix from remaining ccache variables.
2024-08-27 19:24:39 -04:00
Timothy Flynn
0dd8fe1f0f CI: Run the clang plugins during PR workflows 2024-08-27 19:24:39 -04:00
Timothy Flynn
953318e372 CI: Re-enable santizers in the clang plugins build 2024-08-27 19:24:39 -04:00
Timothy Flynn
ac62982ee2 CI: Explicitly set the ccache compiler check
This is needed to allow using clang plugins during PR workflows. They
currently are not included because they resulted in a clean build on
each run. With this, they should be cached.
2024-08-27 19:24:39 -04:00
Timothy Flynn
730ec6aff9 CI: Move the clang-plugins-enabled build to a separate job
Some checks are pending
CI / Lagom (FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, macos-14, macOS, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, Clang) (push) Waiting to run
CI / Lagom (NO_FUZZ, ubuntu-22.04, Linux, GNU) (push) Waiting to run
Validate code with clang plugins / build-and-verify (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-22.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Push notes / build (push) Waiting to run
The plugins build that runs on master currently uses the same ccache key
as non-plugin builds in PRs. This means all clang PR builds are not able
to use ccache.

Move the plugins build to a separate job. This job also has sanitizers
disabled to make the plugins build quicker.
2024-08-26 21:48:59 -04:00
Tim Ledbetter
4771a08d27 CI: Update MacOS runner XCode version 2024-08-20 21:56:41 -04:00
Tim Ledbetter
681c0b5d1b CI: Update MacOS runner XCode version 2024-08-20 15:07:02 +01:00
Andrew Kaster
315a666e53 Tests: Add test to verify CxxSequence protocol conformance of containers
Building the test in debug mode currently crashes the swift frontend,
so we'll need to build this in release mode until that's fixed.
2024-08-17 17:44:37 -06:00
Tim Ledbetter
00eca78d28 Tests+CI: Remove WPT CI job
This currently fails on CI, but gives no indication that it has failed.
2024-08-11 07:52:55 +02:00
Andrew Kaster
cb55f65328 Meta: Add a script and CMake function to generate a clang module map
In theory the clang module map should not have absolute paths for the
headers. Other Swift projects seem to use the -ivfsoverlay feature of
clang to work around this, but it seems difficult to get to work.
2024-08-06 18:28:10 -06:00
dependabot[bot]
0743afbb3c CI: Bump gradle/actions from 3 to 4
Bumps [gradle/actions](https://github.com/gradle/actions) from 3 to 4.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v3...v4)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 17:06:40 -06:00
Andrew Kaster
89a4fa4d24 CI: Only run clang plugins workflow on pushes to master
Enabling the plugins makes the job take ~1h even for small changes.
2024-07-26 13:40:50 -06:00
Andrew Kaster
05e1b54e97 CI: Enable Clang plugins for Linux Clang job 2024-07-25 18:35:57 -06:00
sideshowbarker
1d03944a9c CI: Make notes-push workflow return zero even when “git push” fails
It’s possible but unlikely that a push of generated notes back to the
remote can fail with a message like

> [remote rejected] ... cannot > lock ref 'refs/notes/commits': is at
> f3648f50bb but expected 47686bf473

See https://github.com/LadybirdBrowser/ladybird/actions/runs/10054314539

So this change makes the call to “git push” for notes not return 0 even
if it fails — because it’s not actually a fatal error when it happens,
and not something we need to stop and fix. Instead, it fixes itself.

Specifically: If one CI job for a PR merge/push to master generates
some notes but fails to push them to the origin, the notes don’t get
dropped on the floor and lost.

Instead, the notes-generator tool looks at the entire history; and if it
finds commits that don’t have notes — even if those commits are not part
of the PR push/merge it’s operating on — it generates notes for those.

In other words, if notes for one PR push/job fail for some reason to get
pushed back to the remote, they get regenerated by the next PR push/job.
2024-07-23 11:47:55 +02:00
Timothy Flynn
40a617dbab CI: Remove a couple unneeded system dependencies
libqt6svg6-dev - We don't use Qt's SVG support any longer.

qt6-multimedia-dev - We already install libpulse-dev, so the Qt6
multimedia package is unused.
2024-07-23 08:59:05 +02:00
Timothy Flynn
5b38057802 CI+Documentation: Alphabetically sort system dependencies 2024-07-23 08:59:05 +02:00
Andrew Kaster
68ce5f8290 Ladybird/AppKit: Port TaskManager window to Swift
This is just a direct port of the Objective-C++ code to Swift 6.
A future patch should probably update it to actually use SwiftUI.
2024-07-21 15:55:47 -06:00
Tim Ledbetter
ba56cb6e51 CI: Use single quotes for a literal string in notes-push.yml 2024-07-21 13:25:33 +02:00
sideshowbarker
de66e2551f CI: Make the notes-push workflow not run in forks 2024-07-21 10:34:24 +02:00
sideshowbarker
4a2d5bcf89 CI: Make the notes-push.yml workflow fetch the entire repo history
This change makes the notes-push.yml·workflow fetch the entire history
on each push, rather than just the one HEAD commit it otherwise sees.

Because we push multiple commits from PR merges, git-gloss need access
on each push to an arbitrary number of commits (however many commits
were pushed in a PR that got merged). There’s no easy way from GH
Actions to know how may commits got pushed at the same time. So we
instead fetch the whole history.
2024-07-20 09:30:43 +02:00
sideshowbarker
7360f7fbc6 CI: Fix the permissions syntax for the notes-push.yml workflow 2024-07-20 06:40:02 +02:00
sideshowbarker
980ffd5e19 CI: Give the notes-push.yml workflow write permissions 2024-07-19 21:06:43 +02:00
sideshowbarker
fe3f1c743c CI: Add notes-push.yml, for updating commit Notes on push to master
This change, for each commit pushed/merged to master:

- causes new git Notes with GitHub PR/issue/reviewer/author links to be
  auto-generated for that commit

- pushes the updated refs/notes/commits tree+references back to the repo
2024-07-19 20:15:54 +02:00
Timothy Flynn
7c813d3992 Meta+CI: Hook up the Lagom tools build with vcpkg
AK will depend on some vcpkg dependencies, so the Lagom tools build will
need to know how to use vcpkg. We can do this by sym-linking vcpkg.json
to Meta/Lagom (as vcpkg.json has to be in the CMake source directory).
We also need a CMakePresets.json in the source directory, which can just
include the root file. The root CMakePresets then needs to define paths
relative to ${fileDir} rather than ${sourceDir}.
2024-07-18 14:46:25 +02:00
fish4terrisa-MSDSM
5dde9cf327 CI: Fixed the broken steps in nightly-android 2024-07-11 23:26:05 -06:00
Dennis Camera
033057683c Everywhere: Don't install code generators and test binaries 2024-07-10 10:13:21 -06:00