Code Monkey home page Code Monkey logo

bldr's People

Contributors

aleksi avatar andrewrynhard avatar bradbeam avatar dmitriymv avatar frezbo avatar salkin avatar smira avatar unix4ever avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bldr's Issues

Optimize common sub-targets

Extract common base steps/dependencies into a common LLB node, e.g. in many cases first step is to copy base dependency, we should better extract that as common LLB node.

What is happening right now is that each sub-step tries to copy concurrently hundreds of megabytes of data which basically means our build is more of IO-bound rather than CPU-bound.

Readme: Incorrect use of the term shebang

I'm being a bit grammar nazi here, sorry for that.

In the readme the first line comment directive for the Pkgfile is called shebang, but technically it is not. Shebang is a sequence of two characters hash sign and exclamation mark https://en.wikipedia.org/wiki/Shebang_(Unix)

I believe that "bang" in shebang comes from the exclamation mark (colloquially called "bang" sometimes).

So technically the first line comment in Pkgfile is just a directive, or magic comment or something like that.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

dockerfile
Dockerfile
  • docker/dockerfile-upstream 1.9.0-labs
  • ghcr.io/siderolabs/ca-certificates v1.7.0
  • ghcr.io/siderolabs/fhs v1.7.0
  • docker.io/oven/bun 1.1.20-alpine
github-actions
.github/workflows/ci.yaml
  • kenchan0130/actions-system-info v1.3.0
  • actions/checkout v4
  • docker/setup-buildx-action v3
  • codecov/codecov-action v4
  • docker/login-action v3
  • crazy-max/ghaction-github-release v2
.github/workflows/slack-notify.yaml
  • slackapi/slack-github-action v1
gomod
go.mod
  • go 1.22.3
  • github.com/Masterminds/semver v1.5.0
  • github.com/Masterminds/sprig/v3 v3.2.3
  • github.com/containerd/platforms v0.2.1
  • github.com/emicklei/dot v1.6.2
  • github.com/google/go-github/v63 v63.0.0
  • github.com/hashicorp/go-multierror v1.1.1
  • github.com/moby/buildkit v0.15.1
  • github.com/moby/docker-image-spec v1.3.1
  • github.com/opencontainers/go-digest v1.0.0
  • github.com/opencontainers/image-spec v1.1.0
  • github.com/otiai10/copy v1.14.0
  • github.com/siderolabs/gen v0.5.0
  • github.com/spf13/cobra v1.8.1
  • github.com/stretchr/testify v1.9.0
  • golang.org/x/oauth2 v0.22.0
  • golang.org/x/sync v0.8.0
  • gopkg.in/yaml.v3 v3.0.1
regex
internal/pkg/constants/build.go
  • alpine 3.20

  • Check this box to trigger a request for Renovate to run again on this repository

Better support for repeatable builds

Take a look at the Makefile in that PR: https://github.com/talos-systems/toolchain/pull/24/files It builds a target twice and compares results, pruning the whole cache between builds. I think it has two problems that should be addressed by bldr:

  1. That functionality should be a part of the bldr itself, not in a Makefile.
  2. Pruning the whole cache might be too much, but just passing --no-cache is not enough. Maybe bldr could be modified to ignore cache or prune just needed entries.

Allow referring images by their hashes

It should be possible to refer to images (and variants) by their SHA256 digest using the standard syntax NAME[:TAG][@DIGEST]. The correct digest, if present, should be enforced.

It also should be possible to update the digest with bldr update [--dry] if it is already present:

  • if an image is specified without a digest (image: autonomy/build-container:latest), then bldr update should do nothing;
  • if digest is present (image: autonomy/build-container:latest@sha256:c1a2def75622b7d1d8b4ee508720554269bdb068ba1577bd03a62a0089e9ace3), then bldr update should resolve the tag and update the digest.

Changing source does not invalidate cache

   - sources:
-      - url: https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
+      - url: https://ftp.gnu.org/gnu/make/make-4.4.tar.gz
         destination: make.tar.gz
         sha256: e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19
         sha512: 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b

If make-4.3.tar.gz was previously downloaded, that patch does not trigger a rebuild.

Add integration test

Prepare some set of pkg.yamls, Pkgfile, test via bldr llb and via bldr frontend (need to push it?)

Allow to customize default variables

Default variables contain talos many times. If bldr is generic, we should allow this to be overridable. One of the options is to use Pkgfile to provide vendor variable and use that to populate default variables.

Add 'runtime' dependencies

Proposal: add runtime flag to stage::

dependencies:
   - stage: m4
   - stage perl:
     runtime: yes

By default, all the dependencies are 'build' dependencies, i.e. they're pulled for the build. If dependency is marked as runtime, then if one stage is pulled in as a dependency, all of its runtime dependencies are pulled in as well.

Examples: automake requires perl (and m4 iirc). So if automake is pulled in as build dependency, it should always pull perl and m4, as automake doesn't run without it.

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.