arm64 macOS: embed ruby and python for pre-built binaries?

Open
#2,522 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
cpp, python, ruby

Research direction

Start by reviewing how the arm64 macOS pre-built binaries are packaged and how they currently use the OS-bundled Ruby; the issue does not name relevant files or tests. Decide whether and how Ruby and Python runtimes should be embedded so the binaries work independently of the user's environment, then verify the packaged build works with the targeted DRC decks.

Written by the indexing model from the issue text.

Description

Hiya,

The pre-built binaries over at https://www.klayout.de/build.html use the "OS-bundled Ruby". This presents some challenges at this point.

One is the bundled Ruby is on its way out: this message is printed when I launch irb on macOS 27:

WARNING: This version of ruby is included in macOS for compatibility with legacy software. 
In future versions of macOS the ruby runtime will not be available by 
default, and may require you to install an additional package.

The other is Ruby 2.6 is very out of date, and some DRC decks for open-source PDKs written for KLayout require a more up-to-date version of Ruby.

I am aware there are options for Conda and MacPorts, but neither have the install base of Homebrew - but even if there was a qt6Brew version like x86-64, it would be nicer if there's an option that, however heavy, just works for our use-case OOTB completely independently of the user's environment.

Thoughts? I would be willing to work on this.

Dominant language
C++
Stars
1.2k
Forks
305
Avg merge
3d 2h
Merged PRs (30d)
11

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from KLayout/klayout

All issues in KLayout/klayout

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.