#YachaBlog
124 subscribers
470 photos
108 videos
14 files
126 links
Download Telegram
I am currently working on a PoC feature in the FoxBox that can build OrangeFox releases centrally.
The approach is rather to not use any services like Jenkins or GitLab, because they're either tied to the service (GitLab) or works and feels horrible (Jenkins)

The main advantage of a such approach is that building, releasing and potentially testing can be done directly from a single place (FoxBox).

Here's the screenshots attached.
Would also love to listen what y'all think.
πŸ‘2
// The Jenkins at home
❀2
Screencast_20250508_191051.webm
1.9 MB
Here's a cool animation effect I added
I would also like to share the details of the new OrangeFox CI integration in the FoxBox.

The "normal" way to build AOSP (recoveries are derivatives of AOSP) is that you have a very huge AOSP sources directory (300–400 GB). You also have your device, vendor, and kernel trees, and that's how you build it.

However, there are three main problems:

- Trees – All of them have to be very strictly maintained. Each tree should not export modules (kernels love to export modules) that are already being exported. That means you have to split such trees into common trees, and nobody likes to do that.

- Even if you do it and split the trees, updating things becomes very tedious, as each change in a common tree would affect every single tree that uses it.

- It's rather insecure because the tree of a completely unrelated device can actually copy/build/link anything to all other devices.

- Managing trees is already a hassle. Big projects use something called roomservice, which pulls trees from their Gerrit/git, checks for dependencies, and recursively pulls them as well. It does require manual intervention for even the smallest things, for example, when you want to change the branch, or when one of the thousands of repos moves or becomes unavailable.

My implementation utilizes immutable builds, which means that every single build is not influenced by any other, nor other trees and configurations.

How does it work?

I've made a service called FoxWorker, which pulls from FoxAPI for new tasks, creates podman containers that have read-only access to the OrangeFox sources, and copies the sources to a temporary location. It then pulls the device tree and checks for a file called fox_factory.json, which has the following structure (see the picture). This serves as a kind of build recipe for FoxWorker to execute, it pulls the repositories accordingly and initializes the build.

Specifically, I want to talk about two things:

1. Copying the whole sources (again, it's ~350 GB of very small files):
Now, this would be complete nonsense with a traditional file system. But since I've been using Btrfs for over 5 years, which has a copy-on-write (CoW) feature, that allows the file system to copy only the metadata instead of the actual data. On my machine, copying the entire sources directory takes about 20 seconds.

2. Podman containers:
That's yet another technology I've used for over 5 years, and it's how I host every single service of mine. It works even better for build jobs. By default, Podman uses rootless daemons which, as is obvious from the name, run the daemon without root privileges, resulting in increased security. Podman also integrates pretty well with SELinux-enabled hosts, which I always use as well.
❀1
❀3❀‍πŸ”₯2
Forwarded from OrangeFox Recovery NEWS
πŸ†• We've just launched a refined OrangeFox Downloads website – now with a fresh new look and the latest features.
Check it out: orangefox.download πŸ–₯
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from pixelgang (EdΡƒard Hunter)
This media is not supported in your browser
VIEW IN TELEGRAM
😁3
Forwarded from OrangeFox Recovery Support (Agent A)
We're excited to share that as of today, our infrastructure is now fully open source!

You can explore all of our in-house projects over at: https://gitlab.com/OrangeFox/infrastructure

We're open to contributions, whether it’s to the recovery or infrastructure, and we’ve set up a dedicated email for any questions or collaboration inquiries: volunteers@orangefox.tech.

Come take a look, get involved, and help us build something awesome.
Small weekend projects of mine.
I've drafted the FoxWiki (in-house made wiki engine that pipelines markdown to react elements)

I've also drafted the FoxPaste, the stupidly simply pastebin-like service.

Both of them are using the sets of frameworks and tools I've made for the new downloads website and FoxBox which I've shown here already.

I expect to launch the FoxPaste one at the end of the month as the backend side should be pretty straightforward to do.
❀2
Visually, I also want to share, that my vision of the design, is that it has to be stupidly plain, yet playful.

The main question I've always asked myself is how can I make my thing as less cognitive complex as it could even be?

The answer is not to overcomplicate the product, but to highlight the most important elements wisely.
Today, instead of new websites, I've assembled a bed.
❀3πŸ†2
Please open Telegram to view this post
VIEW IN TELEGRAM
My new room as I've moved ^^
❀11πŸ”₯1
This media is not supported in your browser
VIEW IN TELEGRAM
Today - animations, optimizations and folders support
❀3
Today - variants, that could be Languages, Versions or whatever wiki variants you can think of.
Internally those are just simple first-level folder of the content :D
❀4
Forwarded from Sophie NEWS πŸ“’
Long time no see!

Today, it's rather an up-keeping [#Beta] update for you all.

First, the default model was changed to Gemini 2.5 Flash, which is exactly on 0.5 times smarter than previously used Gemini 2.0 Flash. Apparently, it's now able to count r's in 'strawberry' correctly! πŸŽ‰

The model's instruction was improved to provide more clarity and encourage AI to save information in the memory more often.

Lastly, the DuckDuckGo search tool was replaced with Tavily, which will provide more search capacity for Sophie.

πŸ—“ As always, this update is rolling out first to users with Beta mode enabled and will gradually reach more users in the coming weeks through an A/B release process, ensuring the seamless and hassle-free update.
To use AI Features you need to activate them using /aienable yes first.

The Privacy Policy (https://sophie-wiki.orangefox.tech/docs/Privacy%20policy) has been updated to reflect the addition of Tavily.
Please open Telegram to view this post
VIEW IN TELEGRAM
Hey Nerds!
I won a battle with Ansible and GitLab CI, so the foxwiki is finally deployed!
Take a look - https://foxwiki.orangefox.tech/
❀5πŸ‘3