オープンソース調べOSS 

オープンソース調べOSS 

Yocto:レイヤーの追加方法

# 1. はじめに #

本ページでは、Yoctoのビルド環境にレイヤーを追加する方法について紹介します。
Yoctoは、様々なレイヤー(meta, meta-poky, meta-yocto-bsp, etc…)を組み合わせて構成されています。レイヤー毎にレシピ(\*.bbや*.bbappend)が格納されており、ビルド環境にレイヤーを追加することで、そのレイヤーに含まれるレシピを使うことができるようになります。
多くのレイヤーは、githubなどで公開されています。自身のビルド環境に、使いたいパッケージが含まれていないときは、必要なレイヤーを取得&ビルド環境に追加することで、追加したレイヤーに含まれるパッケージも使えるようになります。また、一般的に、Yocto環境に変更を加える場合、github等で取得したレシピには直接変更を加えず、カスタマイズ用のレイヤーを追加し、そこに変更用のレシピを作成していきます。
この記事は、上記のようなシチュエーションを想定した、レイヤーの追加、作成方法について紹介します。
なお、公式のYoctoマニュアルにおけるレイヤー作成についての説明は、以下

元記事を表示

OSSコントリビュータデビューした話

## はじめに
怯えながらOSSコントリビュータとしてデビューしたので、その際の手順を残します。

今回触ったライブラリはreact-datepickerです。
テスティングライブラリにEnzymeを利用していたため、React Testing Libraryに移行するお手伝いをしました。
## 手順
1. 修正対象ライブラリのgithubから、リポジトリをフォークする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2641495/ee093bce-6d9b-461b-54db-65e43c83e3b7.png)
リポジトリをフォークする先のOrganizationを選択して「Create Fork」をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2641495/7960c142-a15f-b099-c7fb-59366c9c5cb1.png)
1. フォークしてきた作業用

元記事を表示

貢献は力強く、名誉は永遠に、そしてサーバーは空を飛ぶ

# はじめに
私はASUSのROG Flow Z13という虹色に輝くゲーミングタブレットPCを使用しています。厚み1cm程度のタブレットにIntel Core i9とNVIDIA GeForce RTX 3050 Tiが入っているこの素敵な板はWindows 11の他にもAlma LinuxやUbuntuも動作しています。Linuxエンジニアですから。

# Linuxのエンジニアであることの意義
一般にパソコンを購入する、使用するというときイメージしているパソコンとはWindows OSではないでしょうか。家電量販店に行ってもWindows PCかMacくらいしか目にすることはないでしょう。それでも我々がLinuxのエンジニアであることの意義とは何でしょうか?パソコンのほとんどがWindows OSであっても、Linuxのエンジニアであることにはいくつかの意義があります。

1. 柔軟性とカスタマイズ性
Linuxはオープンソースであり、カスタマイズ性が高いため、エンジニアはシステムを自分あるいは自社や顧客のニーズに合わせて調整することができます。これにより、特定の要件に応じてシステ

元記事を表示

貢献と名誉によって巡る経済

# はじめに
誰もがオープンソースムーブメントを利用してソフトパワーを獲得し、競争力を高めることができる現代。実際何をすることで何を得られるのか考えていきましょう。キーワードは **貢献** と **名誉** です。

# オープンソースムーブメントにおける貢献とは
オープンソースムーブメントにおける貢献とは、ソフトウェアやプロジェクトに対して何らかの形で寄与することを指します。これには以下のような活動が含まれます。

1. コードの貢献
ソースコードの修正や新しい機能の追加などプロジェクトにコードを提供することができます。これによってソフトウェアの品質向上や機能の拡張が可能となります。

2. バグの報告と修正
ソフトウェアのバグや問題を報告することで貢献することができます。また、報告されたバグを修正するためにパッチを提供することもあります。

3. ドキュメンテーションの改善
ソフトウェアのドキュメンテーションを改善することで貢献することができます。わかりやすいドキュメントは他の開発者やユーザーがソフトウェアを理解しやすくし、効果的に利用できるようにします。

4. テストと品質管

元記事を表示

オープンソースムーブメントというビジネスモデル

# はじめに
今、資本主義経済はハードパワーからソフトパワーにシフトしています。組織や企業が持つ物理的な資源や能力に物を言わせて目的を達成するハードパワーにも限界が見えてきています。ブランド価値、顧客満足度、リーダーシップ、企業の社会的責任、文化的な価値観などの非物質的な要素により顧客やステークホルダーとの信頼関係を構築し目的を達成するソフトパワーが重要であることをみなさんも日々感じていることでしょう。個人や組織、企業が規模の大小に関わらず強力なソフトパワーを得るにはどうすればいいのか?その答えがオープンソースムーブメントです。

# オープンソースムーブメントとは
オープンソースムーブメントとは、ソフトウェアやその他の知的財産の開発や配布において、そのソースコードやデザイン、その他の資源を公開し、誰でも自由に利用、変更、改善、再配布できるようにする運動です。この運動は主にソフトウェア開発において顕著で、オープンソースソフトウェアの開発と普及を促進しています。

詳しくはLPI-Japanの創設者である成井さんの投稿を参照ください。
https://www.bold.ne.jp/eng

元記事を表示

めざせコントリビューター【完全攻略本】

> ああ あこがれの コントリビューターに
> なりたいな ならなきゃ
> ゼッタイなってやるーッ!

「はじめまして! プログラミングの せかいへ ようこそ!」
「わたしの なまえは ヤマダ」
「ひごろは [Yamada UI](https://github.com/yamada-ui/yamada-ui) [Next.js](https://github.com/vercel/next.js) [Chakra UI](https://github.com/chakra-ui/chakra-ui) [Mantine](https://github.com/mantinedev/mantine) [Refine](https://github.com/refinedev/refine) のコントリビューターをして おるよ」

改めまして、『まだマサラタウンにいるプログラマーのみなさん』こんにちは。プログラマーを始めて3年目の山田です。

今回は、みんなが憧れるOSSのコントリビューターになる、『1番道路』へ踏み入れるための完全攻略本です。そして、日本で大注目されている(はず)の[Yam

元記事を表示

駆け出しOSSコントリビューターが失敗から学んだ 大規模OSS開発のイロハ

## 今熱い!OSSコントリビュート

突然ですが、あなたは OSS活動 やっていますか?
去年ではありますが OSSを積極的に推奨する企業も出てきて、今 OSS にコントリビュートは熱い分野の1つになっています!

https://productpr.timee.co.jp/n/n8e2182f46334

そんな OSS ですが、自分も、去年の10月に初めて nue.js というプロジェクトにコントリビュートしてから、去年の12月から Next.js を読み始めて つい先週 Next.js への PR がマージされました。

https://qiita.com/YmBIgo/items/e4600a44a446033afa1b

https://qiita.com/YmBIgo/items/45c8c3dfbc83e6fb57d7

しかし、普段はOSSの恩恵を受けているだけの開発者の自分は、大規模OSS開発というOSSを使う側と比べると何倍も規模が違う開発のイロハをわきまえず、開発をしてしまい、失敗してしまった経験があります。
自分と同じような過ちはおかしてほしくないという希望を

元記事を表示

Laraveファイルライブラリをアップデートしました!!

## はじめに

こんにちは,ご覧いただきありがとうございます。
前回,Laravel用のファイルライブラリを作成しました。

https://qiita.com/ikepu-tp/items/69c445a4de47f52ce6d7

前回提示していた目標は以下のとおりでした。

1. 機能感はWordPressのメディアライブラリに近い
2. 特に設定をしなくても使える
1. アップロードしたファイルの一覧等をデフォルトで表示できる
2. ファイルのアップロードフォームをデフォルトで使用できる
3. ファイルのアップロードや情報の取得,編集をAPIを通じて行うことができる
4. ファイルのアップロードや情報の取得,編集をインスタンスで行うことができる

これらのうち,1,2の目標を達成しています。
そこで今回は残りの2つの目標を達成するためにアップデートを行いました。

## アップデート内容

– API対応
– ファイルのアップロード処理のインスタンス化
– ダウンロードリンクの追加

の3点です。

### API対応

API対応について,以下のリソースでAPI

元記事を表示

OSS開発でforkしたリポジトリ側の同期方法のメモ

# はじめに
OSS開発時に、upstream(OSS本家)のGitリポジトリ側が進んだ場合の同期方法に関するメモです。

自分のPRがマージされた時にも実行します。本手順を実行すると、forkしたGitリポジトリ側のPRも自動でクローズされます。

# 手順
“`
git checkout main

git fetch upstream

git merge upstream/main –ff-only

git push origin main -u
“`

元記事を表示

4つ目のPRでようやく Next.js にコントリビュートできた話

## 短くまとめると
Next.js で Server Action の redirect のバグがあったから直したよ。

## 教訓
・テストやリントを通さないとPR は通りにくい
・PR を送る時はバッチなだけではなくて、バグの原因も書くといいかもしれない
・ある程度腕に自信があるなら、good first issue ではなくて、普通にissue からバグの調査をしよう

## 経緯
#### 普段してたこと
去年の12月からNext.js のコードを読むようになり、年初と2月の初めにパッチとしてPR を合計3つ出していました。
good first issue は他の人が取り組んでいるものばっかりだったので、issue を一から調査する形でパッチを作っていました。
ただテストやリントを通すことを、

この記事を見るまでしてなかったので、あまり芳しくない結果でした。
ただ issue の調査を通して、Nextjsへの解像度を上げてはいたと思います。

#### Serve

元記事を表示

【Python】`comtypes==1.3.1`から`GetModule`で生成されるモジュールに静的型ヒントが導入

## 初めに
[2023年11月30日に行われたGuido van Rossum氏インタラクティブ記念講演会(#guidomeetup)](https://pyconjp.connpass.com/event/301716/)で[発表した`comtypes`へのコントリビュートについてのプレゼンテーション](https://docs.google.com/presentation/d/1sZ_tAlDRtgWb6JBG9Oumleu8wG45oGFx1_dRg2WnN7U/edit?pli=1#slide=id.p)内容を`main`ブランチに取り組み[`comtypes==1.3.1`](https://pypi.org/project/comtypes/1.3.1/)としてリリースしたので、その機能のご紹介です。

## 概要
これまで`comtypes.client.GetModule`によって`comtypes.gen`以下に生成されるモジュールにあるCOMインターフェースにはPythonフレンドリーな静的型情報がなく、モダンなPython開発に比べてコーディング体験が低い状態

元記事を表示

OSS HCI ソリューション Proxmoxの国内コミュニティを作った話

## TL;DR

– 国内コミュニティは突然に…
– 名前・アイコンなど悩みどころは多い…
– とりあえず勉強会でもやっちゃうか!

## 概要
OSS の HCI ソリューション群 Proxmox の日本国内向けユーザーコミュニティを作成しました!

https://jpmoxs.connpass.com/

というわけで、OSSの国内コミュニティを作った体験記です。

## きっかけ
### 始まりはアーリーアダプターとの打ち合わせ

アーリーアダプターなお客さんとの打ち合わせ時に「UG(ユーザーグループ)とかあるといいですよね」という話で盛り上がるシーンがありました。
そうおっしゃっていたのはUGに見識があり、自身も他のUG参加している方でした。

自身もそのうち…ぐらいでは考えていたのですが、想像以上にニーズがあるというか、取り急ぎあったほうがいい、という感覚がなかったのでなるほどと思いました。

### 突如できる LINE OpneChat

上記の通り、

元記事を表示

初めてOSSにコントリビュートしました

# はじめに
私はエンジニア3年目ですが、新卒でエンジニアになったときからいつかはOSSにコントリビュートしてみたいという目標がありました。

そしてついに、普段お世話になっているリポジトリや機能に対してコントリビュートできたので、その背景をまとめたいと思います。

# コントリビュートの内容
マージされたPRは、以下です。

https://github.com/composer/composer/pull/11816

リポジトリは、[Composer](https://getcomposer.org/)です。
PHPを使っている方ならお馴染みの、パッケージ管理ツールです。

モダンなPHP開発では、ほぼ必ず用いられるツールです。
筆者も業務でPHPとLaravelを使って開発をしていますが、毎日当たり前のようにComposerを使っています。

コントリビュートの内容は、テストコードの追加です。
self-updateコマンドという、Composer自身のバージョン管理を行えるコマンドがあるのですが、そのコマンドのテストケースをなにもない状態から作成しました。

カバレッジは、4

元記事を表示

Atom の作者達が作った Rust 製エディタ Zed (OSS)

## 1. 概要
2024年の1月24日に[ZedがOpen source化](https://zed.dev/blog/zed-is-now-open-source)しました! ということで、Zedとは何か、実際に使ってみてどうだったかというのを簡単にご紹介できればと思います。

## 2. Zed とは何か?
AtomとTree-sitterのクリエイターによる、Rust製のコードエディターで、OSS (オープンソースソフトウェア) であり、 Githubのリポジトリ [こちら](https://github.com/zed-industries/zed?tab=readme-ov-file)で公開されています。

公式サイトから一部抜粋すると下記のような特徴があるようです。

### 2.1 パフォーマンスを重視した設計
– ![スクリーンショット 2024-02-20 17.33.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210923/79c6a788-43c7-0ed3-23a0-7

元記事を表示

Typoだっていい!OSSにコミットするチャンスだ!

# こんな重箱の隅を突くようなコミットに価値があるのか…?

(最近やっていないのですが)私は競技プログラミングを趣味としており、コード作成・テスト・提出に[online-judge-tools](https://github.com/online-judge-tools/oj)を利用しています。
そこで、個人的に新機能を作成したいと思いコードを読んでいた所、思う所があり[Pull Requestを出しApproveを頂きました](https://github.com/online-judge-tools/oj/pull/921)。
まだmergeされてはいませんが、クリティカルな部分ではないですし、問題はありません。

何のPRを上げたでしょうか?そう、**Typo**です。

# これじゃ、俺…コードやコメントを書けなくなっちまうよ

Typo(タイプミス)はプログラムを書く上で一定の確率で起こり、実行時またはコンパイル時にエラーが引き起こされます。
最近は静的解析ツールなどが優秀なので、キーワードや予約語、変数等のハイライトやインデント等で開発者が間違いに気づきやすくな

元記事を表示

SQLBuilderの仕様を考える DELETE仕様検討編

# 目的
GolangのSQLBuilerを作ってみたくて、仕様を考える。
今回はDELETE文の仕様を考える。また、TRUNCATEも併せて考える。

# 目指す形
ここではusersというTableに対応したUserというTableモデル構造体がある場合とする。
宣言としては、
“`
CREATE TABLE users (
id int,
name varchar(10)
)

CREATE TABLE tokens (
id int,
user_id int REFERENCES users.id,
token varchar(10)
)
“`
を想定する

## DELETE

パッケージ名は仮でpkとして

“`go
pk.DELETE(pk.Table(“users”))

// DELETE FROM users
“`

とすることを考えている。

WHERE句の利用は

“`go
pk.DELETE(pk.Table(“users”)).WHERE(pk.Eq(“users.id”), 1)

// DELETE FROM users W

元記事を表示

SQLBuilderの仕様を考える UPDATE仕様検討編

# 目的
GolangのSQLBuilerを作ってみたくて、仕様を考える。
今回はUPDATE文の仕様を考える。

# 目指す形
ここではusersというTableに対応したUserというTableモデル構造体がある場合とする。
宣言としては、
“`
CREATE TABLE users (
id int,
name varchar(10)
)

CREATE TABLE tokens (
id int,
user_id int REFERENCES users.id,
token varchar(10)
)
“`
を想定する

## Update

パッケージ名は仮でpkとして

“`go
pk.Update(pk.Table(“users”)).Set(“name”, “test”)

// UPDATE users set name = ‘test’
“`

とすることを考えている。

複数カラムに関しては

“`go
pk.Update(pk.Table(“users”)).Set(“id”, 2).Set(“name”, “test”)

//

元記事を表示

React に プルリクを送ったけど、マージされなかった話

## 短くまとめると

[React](https://github.com/facebook/react) に PR を送ったら、メンテナからの反応が渋そうだったので萎えていたら、メンテナが自分でブランチ切って修正してマージしていた。

## 教訓

1. OSS ではメンテナの言葉に一喜一憂しない鋼の心が必要
2. OSS では調査に時間がかかっても、できるだけすぐレスする
3. OSS で PR を送る前に テストとリント(と React の場合はタイプチェック, Flow)を通す

## PR を送る前からメンテナがマージするまでの流れ

#### 普段自分がしていたこと

去年の12月になって、1年間業務で使っている Next.js の内部構造を知らないのも変だなと思い Next.js のソースコードを読むようになりました。その過程で、server とちょっと build と client が分かるようになったので、今年の 1月から issue を探して、そのバグ修正を行うようになりました。

#### ことの発端

今回のことの発端は、この issue でした。

htt

元記事を表示

英語エラーメッセージ探訪

# 序

英語でそれっぽいエラーメッセージを書けるようになりたいので、OSSのソースを読むとき、ついでにいろんなエラーメッセージやコメントを収集しています。自分が書くときの参考用に、今までに集めたものから記事を書いてみることにしました。

– 英語が得意じゃないにしても、それなりに伝わるようにメッセージを書けるようになりたいという意図です
– 引用してるものと、私がそれっぽく書いたものが混在しています
– 誤りを見つけたら、ぜひ編集リクエストをください。よろしくお願いします

– 主にJavaScript/TypeScript製のフレームワークやライブラリから拾っています

:::note warn
以下には「よく見る」、「あまり見ない」、「多い」など頻度についての言及がありますが、あくまでも私の主観に基づく記述であり、統計など具体的な根拠に基づくものではありません。
:::

## エラーが発生しました系

– エラーが発生したことを示したい時に
– 具体的な対応策を追加で提示することが望ましいでしょう
– 異常系が雑に作られてるとトラブル対応で死に

元記事を表示

SQLBuilderの仕様を考える INSERT仕様検討編

# 目的
GolangのSQLBuilerを作ってみたくて、仕様を考える。
今回はINSERT文の仕様を考えるが、SELECT+INSERTまで考えると複雑になるので
一旦保留にする

# 目指す形
ここではusersというTableに対応したUserというTableモデル構造体がある場合とする。
宣言としては、
“`
CREATE TABLE users (
id int,
name varchar(10)
)

CREATE TABLE tokens (
id int,
user_id int REFERENCES users.id,
token varchar(10)
)
“`
を想定する

## Insert

パッケージ名は仮でpkとして

“`go
pk.Insert().Into(pk.Table(“users”)).Value(1, “test”)

// INSERT INTO users VALUES(1, ‘test’)
“`

とすることを考えている。

カラムを限定する場合は

“`go
pk.Insert(“id”).Into(

元記事を表示

OTHERカテゴリの最新記事