This is an automated email from the ASF dual-hosted git repository.
d4rkstar pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openserverless.git
The following commit(s) were added to refs/heads/main by this push:
new 6a32558 First step toward release (#197)
6a32558 is described below
commit 6a32558afd1560d14527bf5ea6e6a12c882e5aff
Author: Michele Sciabarra <[email protected]>
AuthorDate: Thu Apr 30 22:36:21 2026 +0100
First step toward release (#197)
* first step for source build
* testing
* changes
* changelog
---------
Co-authored-by: Michele Sciabarra <[email protected]>
---
.gitignore | 1 +
CHANGES | 4 +
README.md | 215 ++++---------------------------
ROADMAP.md | 6 +-
README.md => attic/README.md | 0
VARIABLES.md => attic/VARIABLES.md | 0
cloud-init.yaml => attic/cloud-init.yaml | 0
direnv-init.sh => attic/direnv-init.sh | 0
build.sh | 3 +
cli | 2 +-
devcontainer | 2 +-
olaris | 2 +-
olaris-op | 2 +-
testing | 2 +-
14 files changed, 39 insertions(+), 200 deletions(-)
diff --git a/.gitignore b/.gitignore
index 528156f..e780f6a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
.idea/
**/.DS_Store
network-cache/
+ops
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..f351a0d
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,4 @@
+# sciabarracom 30 Apr 2026
+
+- archived old readme and dev environment files (moved in attic)
+- build from sources compiling the cli (updated the README.md)
diff --git a/README.md b/README.md
index 236ee1e..da673cb 100644
--- a/README.md
+++ b/README.md
@@ -1,215 +1,46 @@
# Apache OpenServerless (incubating)
-Welcome to [Apache OpenServerless](https://openserverless.apache.org), an
incubating project at the [Apache Software Foundation](https://www.apache.org)
+Welcome to [Apache OpenServerless](https://openserverless.apache.org), an
incubating project at the [Apache Software Foundation](https://www.apache.org)
- If you want to **install** Apache OpenServerless in cloud go
[here](https://openserverless.apache.org/docs/installation/).
-- If you want to **understand** what this project is check the [original
proposal](https://cwiki.apache.org/confluence/display/INCUBATOR/OpenServerlessProposal).
+- If you want to **understand** what this project is check the [original
proposal](https://cwiki.apache.org/confluence/display/INCUBATOR/OpenServerlessProposal).
- If you want to **contribute** to the project, read on this README to setup a
**development** environment.
-- If you want to **chat** with us, join [our Discord
server](https://bit.ly/openserverless-discord).
-- If you want to **locally install** open serverless for test or development,
read on.
+- If you want to **discuss** with us, join our mailing list sending an email
to `[email protected]`
+- If you want to **locally install** open serverless from sources test or
development, read on.
-## Test Environment Overview
+# Build from sources
-Apache OpenServerless is a complex project with lots of dependencies. It also
needs a Kubernetes cluster to be executed, tested and developed on.
+## Prerequisites
-To quickly create a development enviromnemt we use a virtual machine in your
workstation created with [multipass](https://multipass.run/).
+- you need an Unix environment, either OSX, Linux or Windows WSL.
+- you need docker availabe on the path
+- you need go available on the path
-You need a virtual machine with at least 8GB of memory and 4 VCPU so your
development workstation probably needs at least 16GB and 6 VCPU. Your mileage
may vary.
+## Procedure
-Read on how to create a test environment.
+Clone all the modules and submodules recursively:
-## Install Multipass
+1. `git clone https://github.com/apache/openserverless --recurse-submodules`
-Here we describe how to setup the development virtual machine on Linux, Mac
and Windows using multipass. First, install multipass.
+2. build ops running `./build.sh`
-- On Mac, if you already have [brew](https://brew.sh/), installing it is as
easy as to type `brew install --cask multipass`.
+3. check ops works executing `./ops -info`
-- On Linux, if you already have [snap](https://snapcraft.io/), installing it
is as easy as type `sudo snap install multipass`.
+verify that OPS_ROOT is equals to $PWD/olaris, so you can use the tasks from
sources
-- On Windows, you need Windows 10 Pro/Enterprise/Education v1803 or later, or
any Windows 10 with VirtualBox. Make sure your local network is designated as
private, otherwise Windows prevents Multipass from starting.
+then execute `./ops -t`
-Download the multipass installer from
[here](https://multipass.run/download/windows) and run the installer. Pick
Hyperv in preference, VirtualBox as an alternative.
-
-- Alternative installation options are available
[here](https://multipass.run/install)
-
-## Setup a development VM using multipass
-
-The steps and the commands to install the development VM are the same in
Linux, Windows and Mac.
-
-Once you have `multipass` installed, open a terminal or powershell and type
the following command:
-
-```
-multipass launch -nopsv -c6 -d40g -m16g --cloud-init
https://raw.githubusercontent.com/apache/openserverless/main/cloud-init.yaml
-```
-
-Wait until the vm is launched and you see messages like `Launched:
openserverless` (message can be different depending on multipass version
effectively installed).
-
-Complete the installation with the following command:
-
-```
-multipass exec opsv ./waitready
-```
-
-Your VM is ready.
-
-## (Optional) Configure Kubectl access
-
-If you need administrative access to the vm, copy the `.kube/config` file
inside the VM locally, then check if you have access:
-
-```
-mkdir $HOME/.kube
-# warning this overwrites an exiting kube config
-multipass exec opsv cat .kube/config >$HOME/.kube/config
-# you need kubectl installed
-kubectl get nodes
-```
-
-You should see something like this:
-
-```
-NAME STATUS ROLES AGE VERSION
-opsv Ready control-plane,master 4h58m v1.29.6+k3s1
-```
-
-# Development Environment Overview
-
-If you only want to test OpenServerless, stop here. You should have a working
environment.
-
-The rest of this readme describes how to create a development enviroment
within the vm.
-
-You need to setup the test environment with multipass before going on with the
Development Environment.
-
-As an IDE we use [VSCode](https://code.visualstudio.com/) as it allows [Remote
Development](https://code.visualstudio.com/docs/remote/remote-overview) within
the virtual machine, and we provide a workspace for it.
-
-You may setup the environment by yourself, but it can take a lot of time so we
prepared a procedure to setup quickly a ready-to-use development environment
which runs the same on Windows, Linux and Mac.
-
-Our development environment uses a virtual machine based on Ubuntu 24.04. The
virtual environemnt is initialized with a [cloud-init](https://cloud-init.io/)
script we provide.
-
-The script installs [k3s](https://k3s.io/) as Kubernetes engine and
[nix](https://nixos.org/download/#download-nix) to setup development
environments. The project includes multiple subprojects, each one with a
different set of dependencies so we use [direnv](https://direnv.net/) to
automatically activate the right tools when you open a terminal.
-
-*NOTE*: of course you can operate variations. It should be relatively easy to
run the development virtual machine in a cloud provider using the provided
cloud-init script. Basically all the cloud providers allows to build a VM using
cloud-init.
-We do not provide instructions how to setup on the various cloud provider
(yet).
-
-You can even setup the development environment by yourself without using the
virtual machine, and use a different IDE, but adapting the configuration for
your IDE is up to you and could be very time-consuming. Our development
environment is the result of a few years of fine tuning, so we do not expect it
will be easy to change.
-
-## Install openserverless and tools in the VM
-
-By default the vm is only for testing, there is no development code inside.
-
-If you are a developer, fefore accessing the VM use this command to dowload
the soucre code and tools you need to for development:
-
-```
-multipass exec opsv ./i-am-a-developer
-```
-
-You may need to wait a little bit before everything is ready.
-
-Once everything is ready, read on to configure access to the vm using VSCode.
-
-## Configure SSH access for VSCode
-
-To access the virtual machine from VSCode you need to setup a ssh key and
create a configuration. Open a terminal (powershell on Windows) and follow
those steps:
-
-1. Check if you already have a key in `$HOME/.ssh/id_rsa`. If not, generate
one with `ssh-keygen -t rsa` then press enter to confirm.
-
-2. Copy the key in the virtual machine to allow no password access:
+you should see somethin like this (files and version may vary)
```
-multipass transfer $HOME/.ssh/id_rsa.pub opsv:
-multipass exec opsv -- bash -c "cat id_rsa.pub | tee -a .ssh/authorized_keys"
+ensuring prerequisite coreutils 0.0.27
+ensuring prerequisite bun 1.2.5
+ensuring prerequisite kubectl 1.33.1
```
-3. Create a configuration named `opsv` to easily access it.
+4. install openserverless in docker with
-First type `multipass list`. You will see something like this:
+`./ops setup mini`
-```
-Name State IPv4 Image
-opsv Running 10.6.73.253 Ubuntu 24.04 LTS
- 10.42.0.0
- 10.42.0.1
-```
-
-Take note of the `<IP>` in the `opsv` line (in this example `10.6.73.253` but
your value can be different)
-
-Use an editor to add to the file `~/.ssh/config` the following:
-
-```
-Host opsv
- Hostname <IP>
- User ubuntu
- IdentityFile ~/.ssh/id_rsa
-```
-
-4. Check you have access without password:
-
-```
-ssh opsv
-```
-
-Once you accessed the VM configure git with your username and email:
-
-```
-git config --global user.name "<your-name>"
-git config --global user.email "<your-email>"
-```
-
-## Access the virtual machine with VSCode
-
-1. Install [VSCode](https://code.visualstudio.com/)
-
-2. Type F1 then "Install Extensions" (or click on the task bar the package
icon)
-
-3. Search "remote ssh" and install the extension "Remote - SSH"
-
-4. Type F1 then "Connect" (or click on the `><` symbol in the corner to the
left at the bottom) and select "Remote-SSH: Connect Current Windows to Host"
-
-5. Click on `opsv` then select Linux if requested
-
-6. Click on the menu bar on `File` then `Openworkspace from file`, then select
the `openserverless` folder and open one of the workspaces. Currently:
-
-- `openserverless-cli.code-workspace`: for the CLI along with task
-- `openserverless-operator.code-workspace`: for the Operator alone
-- `openserverless.code-workspace`: for the root with the Operator and the site
-
-Select `Linux` and then `Trust the authors` if requested.
-
-## Access to the subprojects
-
-Now you have all the repositories in your virtual machine and the subprojects.
Furthermore, in the VM it is configured `nix` that will setup all the
dependencies to develop the subprojects, and `direnv` that activates the right
dependencies when you open the terminal in a subproject.
-
-For example try to execute `Terminal > New Terminal` and you will see you can
choose the subproject. If you select `website` for example, the system will
download all the dependencies to build the web site, in this case `hugo` and
`npm` and install the required tools `postcss`.
-
-## Use Git Submodules
-
-Apache OpenServerless uses git submodules.
-
-This means in practice two things: you have to do Pull Requests and changes
forking the subprojects individually.
-
-Then you have from time to time to update the whole subtree to the latest
releases of all the subprojects.
-
-### Contributing to subprojects
-
-To contribute to a subproject:
-
-- fork a subproject: for example `github.com/apache/openserverless-website`
into `github.com/<username>/openserverless-website`
-- add a remote to the subproject to point to your fork: for example after
opening the `website` terminal, add `git remote add <username>
github.com/<username>/openserverless-website`
-- now you can change the code and push in your fork: `git push <username> main`
-- you can now contribute a Pull Request
-
-### Syncronize the tree
-
-Open a terminal in the `root` subproject and type `./update-tree.sh`. This
script will update all the subprojects to the latest available version on the
main repo.
-
-Do not worry about contributing PR to update dependencies as the maintainers
will periodically take care of this.
-
-## Cleanup
-
-If you do not want to keep the VM anymore, ensure you have backed up all your
files. Then remove it from your cloud provider (check your cloud provider
documentation).
-
-For multipass, use the following commands to cleanup:
-
-```
-multipass delete opsv --purge
-```
+If everything works you end up with a running openserverless in docker
diff --git a/ROADMAP.md b/ROADMAP.md
index acac05a..05d016f 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -1,6 +1,6 @@
# Roadmap
-The roadmap is a high level overview of work we would like to see implemented.
For more details and discussion of new features, improvements or bugs, please
see the [issue list](https://github.com/apache/openserverless/issues) in
GitHub.
+The roadmap is a high level overview of work we would like to see implemented.
For more details and discussion of new features, improvements or bugs, please
see the [issue list](https://github.com/apache/openserverless/issues) in GitHub.
The order of the items does not pretend to to establish the project priorities.
@@ -19,8 +19,8 @@ The order of the items does not pretend to to establish the
project priorities.
* New: Implement a new customizable Job to perform CouchDb maintenance
task (database compaction, activations cleanup)
* Refactoring: Adopt a plugin based implemenation
* OpenServerless CLI (aka ops)
- * TODO
+ * TODO
* OpenServerless Tasks
* New: implemens task to schedule actions using argo events supporting
actions
* OpenServerless runtimes
- * Improvement: call to runtime at / should implement /run behavior as
OpenWhisk web actions.
\ No newline at end of file
+ * Improvement: call to runtime at / should implement /run behavior as
OpenWhisk web actions.
diff --git a/README.md b/attic/README.md
similarity index 100%
copy from README.md
copy to attic/README.md
diff --git a/VARIABLES.md b/attic/VARIABLES.md
similarity index 100%
rename from VARIABLES.md
rename to attic/VARIABLES.md
diff --git a/cloud-init.yaml b/attic/cloud-init.yaml
similarity index 100%
rename from cloud-init.yaml
rename to attic/cloud-init.yaml
diff --git a/direnv-init.sh b/attic/direnv-init.sh
similarity index 100%
rename from direnv-init.sh
rename to attic/direnv-init.sh
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..20ad74d
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,3 @@
+cd cli
+go build -o ../ops cmd/ops/main.go
+cd ..
\ No newline at end of file
diff --git a/cli b/cli
index 851e377..f991fd0 160000
--- a/cli
+++ b/cli
@@ -1 +1 @@
-Subproject commit 851e3774f014f193155233ec7997f597af46636b
+Subproject commit f991fd07e37768e750e2ce8f1971a0073e4ca848
diff --git a/devcontainer b/devcontainer
index 4e69ae5..e704655 160000
--- a/devcontainer
+++ b/devcontainer
@@ -1 +1 @@
-Subproject commit 4e69ae59fe6aea64521f2007c523577b3ed6a792
+Subproject commit e7046558156861bd62540d88bdaca5aee34842f1
diff --git a/olaris b/olaris
index 6467dcb..eee896f 160000
--- a/olaris
+++ b/olaris
@@ -1 +1 @@
-Subproject commit 6467dcbbcb67293e0a4a30f9a1046e63516a92dc
+Subproject commit eee896f2c11b8ca114ec39a83df0c8acfccb332c
diff --git a/olaris-op b/olaris-op
index c562668..f57d7bb 160000
--- a/olaris-op
+++ b/olaris-op
@@ -1 +1 @@
-Subproject commit c562668a35c8f383c8ec6d0065da29baa39f0bcd
+Subproject commit f57d7bbe577810ffb0f635078d6d96dd3c1bff9a
diff --git a/testing b/testing
index 7cb7f6d..5bbfa8a 160000
--- a/testing
+++ b/testing
@@ -1 +1 @@
-Subproject commit 7cb7f6d64e54949cbb7cd634997b75d244454d4d
+Subproject commit 5bbfa8aabf8b2f22327b6caa708484c3ae4ce066