Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
973 commits
Select commit Hold shift + click to select a range
f31819c
Fix typing: `...` in class is not allowed
hoh Mar 14, 2024
811d791
Fix typing: `continue` inside try/finally block is unimplemented in `…
hoh Mar 14, 2024
4381075
Fix typing: Use of lambda caused typing errors
hoh Mar 14, 2024
3bfe28d
Fix: Automated code cleanup
hoh Mar 14, 2024
d386374
Fix typing: Missing annotation on methods
hoh Mar 14, 2024
f1fd306
Fix typing: Missing path was not considered
hoh Mar 14, 2024
553d1aa
Fix: Domain name must always be specified
hoh Mar 14, 2024
4989892
Fix: Imports could be cleaned up
hoh Mar 26, 2024
2f5aa79
Fix: Error data was JSON encoded twice
hoh Mar 19, 2024
0a4f75f
Fix: Invalid ItemHash did not raise a ValidationError
hoh Mar 19, 2024
da112e6
Doc: Update outdated orchestrator README (#592)
hoh Apr 10, 2024
950d3e8
Fix: Execution creation was not tested
hoh Mar 6, 2024
cacb83c
Fix: Circular imports prevented pytest to run
hoh Mar 13, 2024
f096134
Fix: Pytest failed due to missing files
hoh Mar 13, 2024
6d1482d
Doc: Add docstring to settings.setup(), .check()
hoh Mar 13, 2024
d660948
Fix: Assertion errors did not display missing path
hoh Mar 13, 2024
e28fcaa
Fix: run_guest_api mixed str and Path
hoh Mar 26, 2024
1b6d429
Fix: Missed documentation, no TESTING.md
hoh Mar 28, 2024
af5b5fd
Fix: Could not launch a VM without building it locally (#588)
Antonyjin Apr 8, 2024
53b52b6
Problem: hatch envs needed manual manipulation for testing
olethanh Apr 8, 2024
64af5a1
Fix: Missing comments in workflow
hoh Apr 9, 2024
f0922f2
Problem: Execution test hanging. Python runtime slow
olethanh Apr 10, 2024
fe2e74f
Problem cannot import name 'async_sessionmaker' from 'sqlalchemy.ext.…
olethanh Apr 10, 2024
0f77070
Cleanup: Frozen requirements were not maintained
hoh Apr 9, 2024
57695a1
Fix: Prevent diagnostic VM to fail if the ipv6 or ipv4 raises a Timeout.
nesitor Apr 15, 2024
8bbd65b
Fix: Solved CORS issues on PAYG creation.
nesitor Apr 15, 2024
c74ed5a
Fix: Internet diagnostic due to single endpoint
hoh Apr 22, 2024
b7d9202
Problem: Makefile for publishing example were not working
olethanh Apr 16, 2024
54680ba
Problem: could not start Instances from command line (#597)
olethanh Apr 25, 2024
ab79b77
Solve last CORS issues about duplicated headers (#604)
nesitor Apr 26, 2024
fe9235a
Fix: Diagnostic API was not updated
hoh Apr 26, 2024
c7db4ef
Fix: Pytest did not test legacy diagnostic
hoh Apr 23, 2024
8318c43
Installation documentation was moved to aleph doc
olethanh May 3, 2024
ab1b9cd
CI check system usage endpoint
olethanh Apr 29, 2024
ca8ae7b
add unit test for system usage
olethanh Apr 29, 2024
d100df1
Set up a fresh web_app for each test as required by aiohttp
olethanh Apr 30, 2024
4303223
revert local compat change
olethanh Apr 30, 2024
143112d
Apparently CI also don't have matching arch
olethanh Apr 30, 2024
448d97d
Fix test description
olethanh Apr 30, 2024
4725269
Better model real usage in Droplet test
olethanh Apr 30, 2024
8ac2c1b
Add a test with mock
olethanh May 2, 2024
47f1ab5
isort
olethanh May 2, 2024
24f9339
Problem: allocation endpoints was not tested
olethanh Apr 30, 2024
9bd3c03
Update docstring src/aleph/vm/orchestrator/views/__init__.py
olethanh Apr 30, 2024
ffa2322
Fix: Backquote in shell script executed command
hoh May 2, 2024
c942e27
Fix: System testing on DO took too many resources
hoh May 3, 2024
d26888f
Added Qemu automatic tests (#615)
nesitor May 7, 2024
f311408
Fix: Branch `main` could not be tested easily
hoh May 2, 2024
cb0a9f9
Fix: Unkwnown hashes raised exception
hoh Apr 26, 2024
888f523
Replace dep jwskate by jwcryto
olethanh May 16, 2024
9fd2b15
fix typo in doc
olethanh May 16, 2024
1437163
Complete test suite for @require_jwk_authentication
olethanh May 16, 2024
7b89523
Problem : different version of hexbytes were behaving differently
olethanh May 16, 2024
75f0742
Added `USE_CONFIDENTIAL_COMPUTING` check (#617)
nesitor May 22, 2024
cc3f292
601 creating instance tests (#616)
Antonyjin May 27, 2024
2c2d3f8
Fix: File was only closed lazily by garbage collector
hoh May 29, 2024
b63d248
Fix: Some dependencies were inconsistent between pyproject.toml and p…
hoh May 30, 2024
df26f8b
Fix: No .deb was built for Ubuntu 24.04
hoh May 30, 2024
b1ca017
Add platform confidential directory on Settings (#618)
nesitor Jun 5, 2024
a4e26a8
Implement get platform certificates endpoint (#619)
nesitor Jun 6, 2024
30d3284
Fix: Correct string formatting in VM startup response
1yam Jun 12, 2024
b7e0ccf
Fix: Orchestrator failed with `assert result["result"] == HTTPOk.stat…
hoh Jun 5, 2024
1095e3f
Problem: Crash when trying to auth via websocket (#630)
olethanh Jun 13, 2024
b824503
Fix: CI Droplet cleanup failed when same name was used
hoh Jun 14, 2024
d1a1497
Fix: `make clean` did not cleanup all resources
hoh Jun 17, 2024
3f978c5
Fix: Test dependencies were outdated
hoh May 29, 2024
18b0f88
Fix: Binary `sevctl` was absent from debian packages
hoh Jun 5, 2024
98d6f1a
Fix: CI `fail fast' prevented debug on other OS
hoh Jun 14, 2024
377b77f
Fix: No test ensured binaries copied to .deb
hoh Jun 18, 2024
4060e00
Disable printing system logs on deb package as per default configurat…
aliel Jun 19, 2024
834ae4d
Add more information on testing for devs
olethanh Jun 20, 2024
4e350d6
Add test for the reboot endpoint
olethanh Jun 17, 2024
7e76cf1
fix VM log in systemd controller for qemu
olethanh Jun 20, 2024
2e0ddc7
remove useless method
olethanh Jun 20, 2024
83b35be
update doc
olethanh Jun 20, 2024
a9b25a1
useless import
olethanh Jun 20, 2024
138f4d3
Move make_logs_queue in utils/logs.py
olethanh Jun 20, 2024
9feb2fd
Use journald logging for firecracker too
olethanh Jun 21, 2024
b5a70c3
Make Firecracker program respect the log settings
olethanh Jun 21, 2024
dc2004d
unused
olethanh Jun 21, 2024
ed28be7
connect to /dev/null if not printing
olethanh Jun 21, 2024
4f9b3e6
Fix: Path to `sevctl` was not from settings (#637)
hoh Jun 27, 2024
45c14c5
Fix: CRN API did not expose CPU features for trusted computing (#622)
hoh Jun 27, 2024
4a9eabd
Problem: Websocket were required to fetch logs (#645) Endpoint renamed
olethanh Jul 4, 2024
1fedcd7
Improve instances code (#654)
nesitor Jul 5, 2024
a3c5a8c
Fix: AttributeError: 'MicroVM' object has no attribute 'send_shutdown…
hoh Jul 5, 2024
67ae732
Implement Confidential Computing (#650)
olethanh Jul 5, 2024
d643acb
Problem: sevctl command was not tested on the proplet (#651)
olethanh Jul 5, 2024
35dd30a
Add missing `cpuid` dependency (#656)
nesitor Jul 5, 2024
a27a488
Solve Websocket error handling (#657)
nesitor Jul 17, 2024
f9cb9b7
Small fixes noticed on new installations. (#659)
nesitor Jul 23, 2024
e47abd6
Solve Firecracker reboot issues (#658)
nesitor Jul 23, 2024
15e70e7
Allocate endpoint allow starting confidential with hold payment meth…
olethanh Jul 26, 2024
bd3a735
Fix: error when user balance is zero and no remaining executions to r…
olethanh Jul 29, 2024
b21c27e
Start documentation on confidential (#655)
olethanh Jul 29, 2024
e2fcccd
Enable Qemu support by default (#662)
nesitor Jul 29, 2024
307cab9
Fix: Droplet with Ubuntu 24.04 was not tested
hoh Aug 7, 2024
7989177
Update confidential README.md
hoh Aug 9, 2024
902cf85
Fix wrong balance endpoint (#666)
philogicae Aug 14, 2024
1af9c75
CoCo image: Improve example user creation (#669)
olethanh Aug 16, 2024
e83d45b
Problem: using vm_id in qemu socket could cause concurrency issue in …
olethanh Aug 16, 2024
0a62fba
Problem: vm_id allocation algorithm could allocate already in use id …
olethanh Aug 16, 2024
189124b
CI: Add more debugging info
olethanh Aug 16, 2024
7622499
CI : Force the eth_typing depency that was causing issue
olethanh Aug 16, 2024
ae78406
Add duration info to pytest
olethanh Aug 16, 2024
ff6c119
Problem: Vm execution failed due to network interface (#596)
olethanh Aug 20, 2024
885ff75
Do not reuse the id of any vm in pool.executions
olethanh Aug 20, 2024
2f68012
Problem: Login token was not display with default conf (#673)
olethanh Aug 21, 2024
5e7d686
Problem: status_check_fastapi endpoint raising eror (#676)
olethanh Aug 21, 2024
414ef8f
Fix is_confidential property (#674)
olethanh Aug 21, 2024
2414198
Problem: Websocked auth for fail user was not returning error (#675)
olethanh Aug 21, 2024
0b4fbfd
Solve failing tests on main branch (#678)
nesitor Aug 22, 2024
6af63ce
Check message status before checking the payment (#679)
nesitor Aug 23, 2024
4aa662b
Solve duplicated network issues for ephemeral VMs (#680)
nesitor Aug 23, 2024
cd6463c
Fix: Update new `aleph-message` package version. (#683)
nesitor Aug 26, 2024
d66de42
Update `aleph_message` package on packaging steps (#684)
nesitor Aug 27, 2024
b74d05f
Provide a template for new PRs (#667)
olethanh Aug 28, 2024
46063fb
Fix CI slowness and correct execution tests (#686)
olethanh Sep 2, 2024
91d6027
Problem: ping: invalid value (`2.0' near `.0') (#688)
olethanh Sep 3, 2024
02affa3
Feature: Allow PAYG on base (#685)
1yam Sep 3, 2024
1c888e2
ci/fix(test-using-pytest): ensure hatch is always installed when needed
Psycojoker Sep 3, 2024
fbbbf3d
Fix: Debian 11 Bullseye is deprecated, remove it
hoh Sep 4, 2024
c518253
Fix: Automated fixes with `ruff check src --fix`
hoh Sep 3, 2024
8f56dbe
Fix: Ruff errored on exception raising
hoh Sep 3, 2024
7ecb84e
Fix: Python < 3.10 is no supported anymore
hoh Sep 3, 2024
590daa1
Fix: Type annotations could be improved
hoh Sep 3, 2024
48086a1
Fix: Generator loop -> 'yield from'
hoh Sep 3, 2024
1beef1e
more ruffs fixes
olethanh Sep 4, 2024
de27ed0
Fix: Useless comma could be removed
hoh Sep 4, 2024
acc2302
Fix Pydantic error
olethanh Sep 4, 2024
073eb83
Problem: Non deterministic teardown
olethanh Sep 6, 2024
7ee7d04
Problem: Test failing not clearly
olethanh Sep 10, 2024
eb2863d
Problem: QEMUVM killed before shutdown command (#698)
olethanh Sep 13, 2024
fefb30d
Fix: dictionary changed size during iteration
hoh Sep 13, 2024
75cc948
Problem: Test test_websocket_logs_invalid_auth fail on Python 3.12.3
hoh Sep 17, 2024
3e76ed6
Doc: No documentation on operator API auth
hoh Sep 17, 2024
10fc2c7
CI: Calculate the droplet ip only once
olethanh May 3, 2024
8cf10e4
Do not copy the configuration on the server, instead ssh it on the se…
olethanh Sep 4, 2024
c8ded1b
Debug Error Unknown exception while deleting address
olethanh Sep 20, 2024
5518086
Problem: error org.freedesktop.systemd1.NoSuchUnit: Unit aleph-vm-con…
olethanh Sep 18, 2024
f5654c9
feat: add return type to aleph.vm.utils.to_json
Psycojoker Sep 24, 2024
861199c
feat: add pyproject-fmt
Psycojoker Sep 25, 2024
3c807fa
fix: run pyproject-fmt
Psycojoker Sep 25, 2024
9015baf
feat: add yamlfix
Psycojoker Sep 25, 2024
15bd5f5
fix: run yamlfix
Psycojoker Oct 3, 2024
de4a0ff
chore: rename hatch lint env to linting
Psycojoker Sep 25, 2024
15ecb92
Problem: Solana wallet couln't be used to control the VM (#700)
olethanh Oct 8, 2024
0aeb39e
mod Simplify test_operator_confidential_initialize_already_running
olethanh Sep 13, 2024
90bae31
Endpoint /confidential/initialize return json error now and proper ht…
olethanh Oct 1, 2024
49d91d2
Display message when CoCo disk creation abort (#709)
olethanh Oct 9, 2024
2dfb42b
Fix: Error fetching message from vm-connector for start_watch_for_mes…
olethanh Oct 8, 2024
123a4d8
FirecrackerVM drive not working if /var/lib and /var/cache on two sep…
olethanh Oct 17, 2024
7a2d6cc
Problem: Sentry reporting didn't have release information
olethanh Oct 22, 2024
5a7a0ec
Problem: sevctl installation broken on Ubuntu
olethanh Oct 29, 2024
7741ac8
remove progess bar for pip3 in CI don't make sense in log
olethanh Oct 29, 2024
089ccef
Make vm_id assignment more robust (#714)
olethanh Oct 31, 2024
5acbdef
Implement new EVM chains (#717)
nesitor Nov 4, 2024
b113406
Feature: allow IPv6 DNS (#455)
olethanh Nov 5, 2024
662c0c0
Problem: IGNORE_TRACEBACK_FROM_DIAGNOSTICS broken (#713)
olethanh Nov 6, 2024
7461a49
Problem: error Too many open files (#720)
olethanh Nov 8, 2024
7ee5384
Update PULL_REQUEST_TEMPLATE.md for dependencies check (#722)
olethanh Nov 14, 2024
927ce06
CI: docker: Error response from daemon: toomanyrequests (#725)
olethanh Nov 20, 2024
af429a4
Problem: Database logs were displayed twice
olethanh Oct 23, 2024
2b0c894
Problem: database message were too spammy
olethanh Oct 23, 2024
915e08b
Reduce logs
olethanh Oct 23, 2024
6969959
Log formatting with more information
olethanh Oct 23, 2024
3aaca16
Problem: Logs didn't show which VM was used
olethanh Oct 29, 2024
8cd6b3d
More log context on more endpoint
olethanh Oct 29, 2024
fafed8e
Reduce log output for version
olethanh Oct 29, 2024
0e2770a
Fix broken ruff
olethanh Oct 29, 2024
d1b15c6
Fix: Log level could not be configured from settings
olethanh Oct 29, 2024
11f0924
set LOG_LEVEL as the same between for sqlite that for the general app
olethanh Nov 18, 2024
4d319f0
Add tests for opreate_stop
olethanh Nov 18, 2024
efa7559
Add debug string on VmExecution
olethanh Oct 22, 2024
44ca8e0
fix docstring
olethanh Oct 22, 2024
ef2052f
fix docstring
olethanh Oct 23, 2024
890e4e8
Developer setup section
olethanh Oct 30, 2024
94da100
improve dev doc
olethanh Oct 30, 2024
b76e6e4
Fix setup validation for test_create_instance()
olethanh Oct 30, 2024
f1bad18
Apply suggestions from code review from Laurent
olethanh Nov 20, 2024
6836d6d
Add json logs endpoint which works for finished execution (#718)
olethanh Nov 26, 2024
0241c04
Solve CI compiling issue (#727)
nesitor Dec 3, 2024
e93a461
hatch fmt tests/
olethanh Dec 12, 2024
1be3486
Run ruff on code outside src/
olethanh Dec 12, 2024
9272b6f
Make hatch linting use ruff format
olethanh Dec 12, 2024
e2f1cf9
Make import sorting between ruff check and isort compatible
olethanh Dec 12, 2024
e02dd0b
formating
olethanh Dec 12, 2024
6037524
do not run black it is uneeded
olethanh Dec 12, 2024
5a27c82
Doc: Add section on formatting and linting
olethanh Dec 12, 2024
db356af
fix import removed by error
olethanh Dec 12, 2024
c37c7c6
Fix error Deleting network interface
olethanh Dec 16, 2024
3b9ac94
Remove unused delete_ip_address()
olethanh Dec 16, 2024
2ef3b89
List all ip on interface and delete them
olethanh Dec 16, 2024
2f93e70
Chore(deps): Bump aiohttp from 3.9.5 to 3.10.11
dependabot[bot] Dec 16, 2024
57cb485
Problem Deleted Instance not stopping - monitor_payment
olethanh Dec 20, 2024
5f5b708
Add test for normal case and problem case
olethanh Nov 20, 2024
bbfcda6
ALEPH-307 VM init failed for persistant volume with empty string name
olethanh Nov 20, 2024
175f49b
Fix use case where Volume has no mount point either
olethanh Dec 12, 2024
bcdf0c0
fix tests
olethanh Dec 17, 2024
df98ec6
Fix Qemu hang silently on failed boot
olethanh Dec 19, 2024
c2ad82a
Problem Default log level in controler was not set
olethanh Dec 19, 2024
c10f675
Fix VM logs websocket endpoint getting stuck
olethanh Jan 8, 2025
b3f1728
Rework make_logs_queue to make it more readable
olethanh Jan 9, 2025
732aa1a
Test test_make_logs_queue
olethanh Jan 14, 2025
45ac6c6
Fix update_allocation failing on missing message
olethanh Jan 13, 2025
bb587e0
Problem: update_allocation stopped on unkown error
olethanh Jan 13, 2025
b860265
Enhance verbosity on failed downloads
olethanh Jan 13, 2025
4e23ce9
Display proper error for message not found
olethanh Jan 14, 2025
76c6897
Fix guest-api ConnectionClosedError: Reader at end of file
olethanh Jan 14, 2025
98b8fc8
Fix instance ip4 network stopping (nat) (#742)
olethanh Jan 23, 2025
6292bcd
Upgrade aleph-message to 0.6 (#744)
olethanh Jan 23, 2025
38c74fe
Fix AssertionError aleph.vm.orchestrator.views.status_check_fastapi …
olethanh Jan 23, 2025
77d5898
Sanitize volume names (#743)
nesitor Jan 23, 2025
e6f2ff7
Fix: Runtime emitted wrong reboot signal (#741)
hoh Jan 23, 2025
7f89c89
Unified branding on node index page style (#745)
nesitor Jan 29, 2025
b020227
Add GPU list to /about/usage/system endpoint (#726)
philogicae Feb 3, 2025
97f07f2
Fix regression: Monitoring of payment stream (#749)
olethanh Feb 13, 2025
cd8443e
Solve Aleph VMs automatic restarts (#750)
nesitor Feb 13, 2025
cc47d58
Minor typo in README.md fixed (#752)
gdelfino Feb 17, 2025
7c9392c
Garbate collector: Free disk space from inactive VM (#746)
olethanh Feb 17, 2025
01ff0c1
Implemented GPU compatibility system (#747)
nesitor Feb 17, 2025
7f6ff3e
Upgrade `aleph-message` version (#753)
nesitor Feb 18, 2025
81618bc
Fix IPv6 egress check on index falesly showing ok
olethanh Feb 18, 2025
bb1158a
fix typo
olethanh Feb 18, 2025
4c4354d
Create Ubuntu 24.04 QEMU runtime (#754)
nesitor Feb 18, 2025
c1967c6
Default log level to info
olethanh Feb 18, 2025
07a7adb
Jira ticket: ALEPH-419
olethanh Feb 19, 2025
92249a9
Fix start error in load_persistent_executions (#759)
olethanh Feb 20, 2025
2de50e6
Problem: If the user creates a flow from the frontend or the CLI, the…
nesitor Feb 19, 2025
6055ad6
Apply rounding in payment monitoring task too
olethanh Feb 21, 2025
f3ef334
Fix DiagnosticVM, force ipv4 connexion on /internet check (#760)
olethanh Feb 21, 2025
3a01121
Attempt to fix the packaging issue on Ubuntu 22.02
olethanh Feb 25, 2025
63b7a02
Update dep in Makefile
olethanh Feb 25, 2025
346325f
Force setup tool version
olethanh Feb 26, 2025
d1a90aa
Create an intermediate venv with the proper setup tools version
olethanh Feb 26, 2025
467098e
Add dept in Dockerfile for ubuntu-22.04 and debian too
olethanh Feb 26, 2025
1a38ca7
Fix: Stdout stdout caused concurrency issues
hoh Feb 19, 2025
155c276
Fix update_allocation error handling code
olethanh Feb 26, 2025
a34b37d
Fix: Used old versionof python-cpuid
hoh Feb 27, 2025
58f8a74
Fix: Supervisor was restarted when Kubo crashed
hoh Feb 27, 2025
35707c3
Fix: Remove references to slow server api1.aleph.im (#769)
hoh Feb 28, 2025
1c2c180
Chore(deps): Bump sentry-sdk from 1.31 to 2.8.0
dependabot[bot] Feb 27, 2025
9be96a9
Increment `aleph-message` package version (#774)
nesitor Mar 10, 2025
8043bf0
Fix: Missing type annotation
Antonyjin Mar 6, 2025
02db781
Fix: Packages used obsolete Kubo
hoh Mar 4, 2025
f09bdd2
Fix: Kubo 33.2 crashed on Ubuntu 22.04
hoh Mar 11, 2025
7444c81
Fix buggy settings aggregate cache implementation
olethanh Mar 17, 2025
73013a2
Allow /56 subnet for ipv6 pool (#761)
olethanh Mar 18, 2025
223fd93
Fix: Trusted 3rd party IPFS server
hoh Mar 12, 2025
dadad88
Fix: IPFS config was not properly provided.
hoh Mar 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,16 @@
**/*.pyc
**/__pycache__

**/rootfs/
**/*.sqlite3
# **/*.squashfs
**/*.bin
**/*.ext4
**/*.zip
**/*.pyz
**/*.rdb
**/*.key
**/data.tgz
/pydantic/
**/target
/packaging/sevctl/target
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
34 changes: 34 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Explain what problem this PR is resolving

Related ClickUp, GitHub or Jira tickets : ALEPH-XXX

## Self proofreading checklist

- [ ] The new code clear, easy to read and well commented.
- [ ] New code does not duplicate the functions of builtin or popular libraries.
- [ ] An LLM was used to review the new code and look for simplifications.
- [ ] New classes and functions contain docstrings explaining what they provide.
- [ ] All new code is covered by relevant tests.
- [ ] Documentation has been updated regarding these changes.
- [ ] Dependencies update in the project.toml have been mirrored in the Debian package build script `packaging/Makefile`

## Changes

Explain the changes that were made. The idea is not to list exhaustively all the changes made (GitHub already provides a full diff), but to help the reviewers better understand:
- which specific file changes go together, e.g: when creating a table in the front-end, there usually is a config file that goes with it
- the reasoning behind some changes, e.g: deleted files because they are now redundant
- the behaviour to expect, e.g: tooltip has purple background color because the client likes it so, changed a key in the API response to be consistent with other endpoints

## How to test

Explain how to test your PR.
If a specific config is required explain it here (account, data entry, ...)

## Print screen / video

Upload here screenshots or videos showing the changes if relevant.

## Notes

Things that the reviewers should know: known bugs that are out of the scope of the PR, other trade-offs that were made.
If the PR depends on a PR in another repo, or merges into another PR (i.o. main), it should also be mentioned here
11 changes: 11 additions & 0 deletions .github/scripts/extract_droplet_ipv4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env python3
"""
Extract the IP address of a DigitalOcean Droplet
from the JSON returned by `doctl compute droplet get $name --output json
"""

import json
import sys

droplet_info = json.load(sys.stdin)
print(droplet_info[0]["networks"]["v4"][0]["ip_address"])
92 changes: 92 additions & 0 deletions .github/workflows/build-deb-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
name: "Build Packages"
on: push


jobs:
build_deb:
name: "Build ${{ matrix.os }} Package"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: ["debian-12", "ubuntu-22.04", "ubuntu-24.04"]
include:
- os: "debian-12"
make_target: "all-podman-debian-12"
artifact_name: "aleph-vm.debian-12.deb"
- os: "ubuntu-22.04"
make_target: "all-podman-ubuntu-2204"
artifact_name: "aleph-vm.ubuntu-22.04.deb"
- os: "ubuntu-24.04"
make_target: "all-podman-ubuntu-2404"
artifact_name: "aleph-vm.ubuntu-24.04.deb"
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
# Fetch the whole history for all tags and branches (required for aleph.__version__)
fetch-depth: 0

- name: Initialize git submodules
run: git submodule init

- run: |
cd packaging && make ${{ matrix.make_target }} && cd ..
ls packaging/target

- name: Ensure that the relevant files are present in the package
run: |
dpkg --contents packaging/target/${{ matrix.artifact_name }} | grep /opt/kubo/ipfs
dpkg --contents packaging/target/${{ matrix.artifact_name }} | grep /opt/firecracker/firecracker
dpkg --contents packaging/target/${{ matrix.artifact_name }} | grep /opt/firecracker/jailer
dpkg --contents packaging/target/${{ matrix.artifact_name }} | grep /opt/firecracker/vmlinux.bin
dpkg --contents packaging/target/${{ matrix.artifact_name }} | grep /opt/sevctl

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: packaging/target/${{ matrix.artifact_name }}

build_rootfs:
name: "Build runtime aleph-${{ matrix.os }}-python"
runs-on: ubuntu-latest
strategy:
matrix:
os: ["debian-12"]
include:
- os: "debian-12"
artifact_name: "aleph-debian-12-python.squashfs"
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Workaround github issue https://github.com/actions/runner-images/issues/7192
run: sudo echo RESET grub-efi/install_devices | sudo debconf-communicate grub-pc

- run: |
sudo apt update
sudo apt install -y debootstrap
cd runtimes/aleph-${{ matrix.os }}-python && sudo ./create_disk_image.sh && cd ../..

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: runtimes/aleph-${{ matrix.os }}-python/rootfs.squashfs

build_example_venv_volume:
name: "Build example squashfs volume using Docker"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- run: |
docker build -t aleph-vm-build-squashfs -f examples/volumes/Dockerfile examples/volumes
docker run --rm -v "$(pwd)":/mnt aleph-vm-build-squashfs

- uses: actions/upload-artifact@v4
with:
name: example-volume-venv.squashfs
path: volume-venv.squashfs
74 changes: 74 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"


on:
push:
branches: [main]
pull_request:
# The branches below must be a subset of the branches above
branches: [main]
schedule:
- cron: '15 16 * * 0'


jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: ['python']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

steps:
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
64 changes: 64 additions & 0 deletions .github/workflows/deploy-main-on-staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
# This workflow automatically deploys main on staging
name: "Deploy `main` automatically on staging"


on:
push:
branches:
- main


jobs:
deploy_staging_servers:
name: "Deploying on ${{ matrix.staging_servers.hostname }}"
runs-on: ubuntu-latest
strategy:
matrix:
staging_servers:
- hostname: "ovh.staging.aleph.sh"
# Use `ssh-keyscan -H host | base64 --wrap=0` to obtain the host keys
host_keys: "fDF8b3JHVkxyOU83Qnh0QmkvWjd4N0lVTkRDSHFRPXwxZEdZSnNjNlFyejA5QkR6cGROR1BLYjNES009IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQmdRRHZwSmNpV2dscTNCbEsxY2xOUmNETnVQeFVCeGF3bE5qVElHZFV2MmoyTVo4KzliVVpDSkI1aXFIKzNvbkc5Vklla1RQdW1ybFlXbFMvZkkvSzM3dTh5UXJuQ3JkNi9XRm9XWWJOaTJ4NWxSOUhzaTViRXQ4MFAwRkFyVVpaSkdzbnRQdVhGeFJGR3dHeFNENTN2emVMbmU4VjRlaUxrQ3BjMDU5YzZVVHBublcvSjdRRnlzZURDUXIwVzFsMzBNcjlnTm1LbmpBd2VLWXdCS0hYaG42VGdSd1RYT1E3VXJCc3c2Q1d0OHI2N2g4QkJ2UHQ5OWt5OHl4dUw2Z25TRlhqeWhyKzVhd1lTY3VhVU5JS3B0Y2JFOWpISHhEY1FLSHN0akZZRHRsM0JWN29rUEkvUWJablpSMDVTdDgvZldoK2p5K3ZtR3BTWmtFckJ2NkUwdFhHMDhmdkdheVRXNWFVcWxRQmlLMzJpNmJlUWordjI3b0pUWndvcndBOVJCY1QramlCWVRNVUFpTTJrblhXMGlqT2ViWDNackpITm5QbXJkbjBTd1JldGlLRzg2SGdRK3d3a0dwd3UxVk01eTFlbTVwZ0VUdnU5SHg1RTFKeEJLcXJ3ZkdhTVVRWFZEWG8yNDg5bW1XZzA1aUFHejZIaXNTVWRESFlRKzhnWnA4PQp8MXxvUzkyc1NEb3RxU1hSb0F6MUpFS1V2RDhVTGM9fDVtSHZBSVdqbk1CN2IwcllRQlo0SXBpaFlqQT0gZWNkc2Etc2hhMi1uaXN0cDI1NiBBQUFBRTJWalpITmhMWE5vWVRJdGJtbHpkSEF5TlRZQUFBQUlibWx6ZEhBeU5UWUFBQUJCQkZNanZFOEFsQmYxbkp1Y0ZlaEJjSUY2RE8wdGJOdU96OEx5QlFUdC82RlEwaWYyWVAxQUJ1TjBmYXVIT3R4WEx6b25vSGVhTDZaV0JoakhmRGV4NlY4PQp8MXxMc2lPc3RhVGk5bEhYSlFsWDJYQ3c3Q0lTU1k9fGk1RzlFTHJydHpaYkUrR2JjbWF1SDIxOG1ZND0gc3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUp1QVNEMWY1d2dXM3pnd3FGalBXYzhPRi9BZ1pmSFFVa3lRMDE2c1MrRmoK"
os: "debian-12"
make_target: "all-podman-debian-12"
artifact_name: "aleph-vm.debian-12.deb"

- hostname: "hetzner.staging.aleph.sh"
# Use `ssh-keyscan -H host | base64 --wrap=0` to obtain the host keys
host_keys: "fDF8WUlKd0FYWnYxZ24vNkRCU0tkYjg0TC9sUngwPXwrRk96RzdoSTJ5Y3JzUW1uSEwrdEFBQkR4YUU9IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQmdRRHBKcHF5ajUxWUluRkNyZjZUWjE5eUF3cHlXNTNHaFAxNXQ0Wm56cHBwOUVnNTNnZmVWdmk5WUV1bVV6cnVUN01LdFpobjNsb0U5YVFtRUYzSElpb3c5ZmlCWVA3aUMzUUFGdUJCandPUmQwV1RVWDZQQUN2c2p0b1JLWjJpTWZ2YXdITHdrWHErWnkrc2hHNU44L2pwQlJ4MC9paXJta2xPS0F5QWw0QTYzZ2MxMndsVGQzcS9IcDVxd1dSYVV3M1JVUTFTVVJSN2RGRW81VWxqeUZVYS9zdWV1STBYOXdLd0tPZ09iOEo3ZFZDMEdDT3VibkJXL3Jmb3N0YVV5eStaSzdQdzBrM251M2szTFZuUVlPTGlNOG1NMnJub2ZWZ2RSWXpiM3RTUVVrbk9wektBVzBXK3llWmpSOXp1UG4yNXF4bWxsRmRaNmt3QTFDcWY2MmQyQ0dtQ2NDU3dUSUl4ZHJ3M29oOEZOclpROTI4OGQvcmF4djZXZi9oZDI0Y1JqeDdFSEJxOUFWMW02UTZWeGxnSWl0WjIzODlsYjRmODNGclRrNUtib3J3Zm5oM3NaZFRSSkJqRjRhdHZ5NktsWFYxenROc05BeDhFN1RnTDMzVFlnRGc4RWlldGN1TVlzUlcwSnREdldBNGxsZDFQS3JrbDJ1LzZvLzNUb0xVPQp8MXxmQ3FnTjB2WHpMTnAzdklnZXdkSFRQRTA0ZUk9fDhnSituTC9hUGpEQlRMcUNJak1sZFpVbFRpST0gZWNkc2Etc2hhMi1uaXN0cDI1NiBBQUFBRTJWalpITmhMWE5vWVRJdGJtbHpkSEF5TlRZQUFBQUlibWx6ZEhBeU5UWUFBQUJCQktWbnE5aWsvcHZFaDdXbHFydUtWZmdZeTlwOVpNQnVKV2IrZkVvS0hZY0ZSYld5c0lYRjJlalBnaUMyOFEvZExqeUhXd2RVZlMySFBMbGNxRVFEZlpvPQp8MXxtVzA4T3ZqUnh0bmRjYVNyc0poWXBQcXp2akk9fFlDcktMeUg4ZnJJR0lRV05RS3hiUnArNlIvTT0gc3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUl5ZGNhTXF1dkZFTEpNUDBlRmhNUGJWZVBSVjlSUEhVRzhIZGZIQmRvaTEK"
os: "debian-12"
make_target: "all-podman-debian-12"
artifact_name: "aleph-vm.debian-12.deb"

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# Fetch the whole history for all tags and branches (required for aleph.__version__)
fetch-depth: 0

- run: |
cd packaging && make ${{ matrix.staging_servers.make_target }} && cd ..
ls packaging/target

- name: Setup SSH private key
run: |
mkdir ~/.ssh
echo $STAGING_SSH_PRIVATE_KEY | base64 --decode > ~/.ssh/id_ed25519
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/id_ed25519
env:
# Create using:
# ssh-keygen -t ed25519 -f ./id_ed25519
# cat ./id_ed25519 | base64 --wrap=0
STAGING_SSH_PRIVATE_KEY: ${{ secrets.STAGING_SSH_PRIVATE_KEY }}

- name: Install Aleph-VM on the Staging servers
run: |-
echo ${{ matrix.staging_servers.host_keys }} | base64 --decode > ~/.ssh/known_hosts

# Wait for /var/lib/apt/lists/lock to be unlocked on the remote host via SSH.
while ssh root@${{ matrix.staging_servers.hostname }} lsof /var/lib/apt/lists/lock; do sleep 1; done

scp packaging/target/${{ matrix.staging_servers.artifact_name }} root@${{ matrix.staging_servers.hostname }}:/opt
ssh root@${{ matrix.staging_servers.hostname }} DEBIAN_FRONTEND=noninteractive "apt-get -o DPkg::Lock::Timeout=60 install -y --allow-downgrades /opt/${{ matrix.staging_servers.artifact_name }}"
23 changes: 23 additions & 0 deletions .github/workflows/pr-rating.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Test PR Difficulty Rating Action


permissions:
pull-requests: write


on:
pull_request:
types: [opened, reopened, ready_for_review]


jobs:
difficulty-rating:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- name: PR Difficulty Rating
uses: rate-my-pr/difficulty@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LLAMA_URL: ${{ secrets.LLAMA_URL }}
Loading
Loading