GithubHelp home page GithubHelp logo

Comments (8)

t184256 avatar t184256 commented on August 26, 2024

As we recently introduced an overlay for htop and I think that there will be many overlays created in the future (see termux packages and their patches)

I've looked through a couple of dozens of them, and I got the impression that most of their patches aren't relevant for us, they are for fighting bionic/NDK pecularities. So, I'm not exactly sure that we'll have too many.

We could use aarch64 build machine like those provided by travis-ci or github workflow to build these packages.

I actually liked how you did it with travis and cross-compilation. Large builds might require manual pushes, but small changes and small builds like htop should be within sane limits. And it auto-pushes what it has already built, so it will get through eventually.

In the htop overlay I pinned the nixpkgs version.

Yes. I was puzzled at first, but I concede that it makes sense: nixpkgs can move forward and break our patches, while a pinned old version of htop that you have to compile yourself is still infinitely better than a guaranteed broken one.

What do you think? Are there any problems I missed out?

Your reasoning is fine. Configuring CI for native compilation will be a big one-off investment. Updating pinned nixpkgs will be required from time to time, but having the packages compiled and cached will allow to reduce the period.

Patching packages that were half-broken is another story, and we'll have to expose the choice to the user: fresh package or fixed package. But it's thinking too much ahead, we don't even have them at this point =)

from nix-on-droid.

Gerschtli avatar Gerschtli commented on August 26, 2024

Large builds might require manual pushes

A side note: travis has a timeout of an hour, github workflow has a timeout of 6 hours.

I try to build a prototype which builds ci.nix and all packages with overlays and push them to cachix. Furthermore I will write a workflow to update the nixpkgs version if all builds succeed, should be fairly straight forward :)

from nix-on-droid.

Gerschtli avatar Gerschtli commented on August 26, 2024

Unfortunately, it is not really easy to pull off a working github workflow as it does not support aarch64. I could try travis for this purpose, but I don't think the one hour limit will work for us.

from nix-on-droid.

t184256 avatar t184256 commented on August 26, 2024

For what, just for htop?

from nix-on-droid.

Gerschtli avatar Gerschtli commented on August 26, 2024

Thats a valid point. As long as the count of overlays is low it should work.

from nix-on-droid.

t184256 avatar t184256 commented on August 26, 2024

If we update them one-by one, it's not the count that matters, but the duration of the rebuilds. Or even of a single derivation, if we're willing to retrigger timeouts.

Which reminded me that I wanted to fix typespeed for quite a while already, I'll try my hand at it...

from nix-on-droid.

t184256 avatar t184256 commented on August 26, 2024

I've pushed 8e97da4 with a fix for typespeed, but deliberately didn't push the resulting binaries to cachix. It's also not a big package.

from nix-on-droid.

Gerschtli avatar Gerschtli commented on August 26, 2024

Short update on this topic. I managed to pull off a complete CI job (install nix, setup cachix, build stuff, push to cachix) on github actions for aarch64 systems in my nix-config repo: https://github.com/Gerschtli/nix-config/blob/master/.github/workflows/ci.yml

It is not that complicated, maybe it is worth a try for nix-on-droid :)

from nix-on-droid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.