libjxl

本サイトが提示する下記のベストプラクティスを実行するプロジェクトは、Open Source Security Foundation (OpenSSF) バッジを達成したことを自主的に自己認証し、そのことを外部に示すことができます。

これがあなたのプロジェクトなら、あなたのプロジェクトページにあなたのバッジステータスを表示してください!バッジステータスは次のようになります。 プロジェクト 7845 のバッジ レベルは silver です バッジステータスの埋め込み方法は次のとおりです。

これらはゴールドレベルの基準です。合格またはシルバーレベル基準を表示することもできます。

        

 基本的情報 5/5

  • 識別情報

    JPEG XL image format reference implementation, including a library for encoding and decoding JPEG XL images as well as command line tools (cjxl, djxl, jxlinfo) and various related tools (e.g. perceptual metrics, color conversion and benchmarking tools).

  • 前提要件


    プロジェクトは、シルバー レベル バッジを達成しなければなりません。 [achieve_silver]

  • プロジェクトの管理・運営


    プロジェクトは2以上の "バス ファクタ"を持つ必要があります。 (URLが必要です) [bus_factor]

    Hard to assess with the truck-factor tool since initial development was private and all commits were authored by "jpegxl-bot". But there are at least 4 project maintainers who are sufficiently knowledgeable and competent, so the bus factor is 4 or more. As can be seen on https://github.com/libjxl/libjxl/graphs/contributors, there are at least 6 project members who have made significant contributions over a long time span in the past and are still recently active.



    プロジェクトには少なくとも2人の関係を持たない重要な貢献者がいなければなりません。 (URLが必要です) [contributors_unassociated]

    Significant contributors include: - Jon Sneyers (Cloudinary) - Moritz Firsching, Luca Versari, Evgenii Kliuchnikov, Jyrki Alakuijala, Sami Boukortt, Zoltan Szabadka, Jan Wassenberg (Google) See https://github.com/libjxl/libjxl/graphs/contributors


  • その他


    プロジェクトは、各ソースファイルにライセンスステートメントを含まなければなりません。これは、各ファイルの先頭近くに次のコメントを含めることによって行うことができます: SPDXライセンス識別子:[プロジェクトに対するSPDXライセンス表現] [license_per_file]

    All source files start with the following:

    // Copyright (c) the JPEG XL Project Authors. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file.


  • 公開されたバージョン管理ソースリポジトリ


    プロジェクトのソースリポジトリは、共通の分散バージョン管理ソフトウェア(gitやmercurialなど)を使用しなければなりません。 [repo_distributed]

    Repository on GitHub, which uses git. git is distributed.



    プロジェクトは、新規または偶に参加する貢献者によって実行できる小さなタスクを明確に識別しなければなりません。 (URLが必要です) [small_tasks]

    プロジェクトは、中央リポジトリを変更したり、機密データ(プライベート脆弱性レポートなど)にアクセスするために、開発者に対して二要素認証(2FA)を要求する必要があります。推奨されませんが、2FAメカニズムは、SMSのような暗号化メカニズムを持たないメカニズムを使用することができます。 [require_2FA]

    2FA is required for everyone in the libjxl github organization.



    プロジェクトの2要素認証(2FA)は、偽装を防ぐために暗号化メカニズムを使用すべきです。ショート メッセージ サービス(SMS)ベースの2FA自体は、暗号化されていないため、この基準を満たしていません。 [secure_2FA]

    TOTP is used for 2FA, not SMS.


  • コーディング標準


    プロジェクトは、コードレビューの実施方法、チェックする必要があるもの、受け入れられる必要があるものなど、コードレビュー要件を文書化しなければなりません。 (URLが必要です) [code_review_standards]

    プロジェクトは、公開する前に、提案されたすべての変更の少なくとも50%を著作者以外の人がレビューして、それが価値のある変更であり、取り込みに反対する既知の問題がないかどうかを判断しなければなりません。 [two_person_review]

    All pull requests require review/approval by at least one person other than the author, and this is enforced. For more significant proposed modifications, typically at least two reviews by a person other than the author are done, although this is not enforced.


  • 作業ビルドシステム


    プロジェクトが再現可能なビルドを持たなければなりません。ビルドが発生しない場合(たとえば、コンパイルされないでソースコードが直接使用されるスクリプト言語)、「該当なし」(N/A)を選択します。 (URLが必要です) [build_reproducible]

    Building for various platforms is done as part of the CI, see e.g. https://github.com/libjxl/libjxl/actions/workflows/release.yaml


  • 自動テスト スイート


    テストスイートは、その言語の標準的な方法で呼び出すことができなければなりません。 (URLが必要です) [test_invocation]

    The gtest framework is used for this and testing will be done automatically as part of building unless -DBUILD_TESTING=OFF is specified. A script is provided (https://github.com/libjxl/libjxl/blob/main/ci.sh) to easily do building and testing with various build options (e.g. msan, asan etc).



    プロジェクトは、新しいコードまたは変更されたコードが頻繁に中央コードリポジトリに統合され、その結果に対して自動化されたテストが実行される、継続的な統合を実装しなければなりません。 (URLが必要です) [test_continuous_integration]

    プロジェクトは、選択された言語でこの基準を測定できる少なくとも1つのFLOSSツールがある場合、少なくとも80%のステートメント カバレッジを提供するFLOSS自動テストスイートを備えていなければなりません。 [test_statement_coverage90]

    Currently the automated coverage testing only reaches 84%, see https://app.codecov.io/gh/libjxl/libjxl Reaching 90% is not impossible but it would require adding many explicit tests involving invalid inputs (many of the uncovered statements), which is something that is better tested with fuzzer-testing than with unit tests.



    選択された言語でこの基準を測定できる少なくとも1つのFLOSSツールがあれば、少なくとも80%のブランチカバレッジを提供するFLOSS自動テストスイートがプロジェクトに存在しなければなりません。 [test_branch_coverage80]

    Currently the automated coverage testing reaches 84%, see https://app.codecov.io/gh/libjxl/libjxl


  • 優良な暗号手法を使用する

    一部のソフトウェアは暗号化メカニズムを使用する必要がないことに注意してください。あなたのプロジェクトが作成するソフトウェアが、(1) 暗号化機能を含む、アクティブ化する、または有効化し、(2) 米国(US)から米国外または米国市民以外にリリースされる可能性がある場合は、法的に義務付けられた追加手順の実行を要求される可能性があります。通常、これにはメールの送信が含まれます。詳細については、 Understanding Open Source Technology & US Export Controls「オープンソース技術と米国の輸出管理について」)の暗号化のセクションを参照してください。

    プロジェクトで作成されたソフトウェアは、ネットワーク通信すべてに対して、SSHv2以降、TLS1.2以降 (HTTPS)、IPsec、SFTP、SNMPv3などのセキュア プロトコルをサポートしなければなりません。FTP、HTTP、telnet、SSLv3以前、SSHv1などのセキュアでないプロトコルは、デフォルトで無効にしておき、ユーザーが特別に設定した亜場合のみ有効にしなければなりません。プロジェクトによって作成されたソフトウェアがネットワーク通信をサポートしない場合は、「該当なし」(N/A)を選択します。 [crypto_used_network]


    プロジェクトによって作成されたソフトウェアは、TLSをサポートあるいは使用する場合、少なくともTLSバージョン1.2をサポートしなければなりません。TLSの前身は、SSLと呼ばれていたことに注意して下さい。ソフトウェアがTLSを使用ない場合、「該当なし」(N/A)を選択します。 [crypto_tls12]

  • MITM(man-in-the-middle:中間者)攻撃に対応できる安全な配信


    プロジェクトウェブサイト、リポジトリ(ウェブからアクセス可能な場合)、およびダウンロードサイト(別々の場合)には、許容できない値を持つキー強化ヘッダーが含まれていなければなりません。 (URLが必要です) [hardened_site]
  • その他のセキュリティ上の課題


    プロジェクトは過去5年間にセキュリティレビューを実施していなければなりません。このレビューは、セキュリティ要件とセキュリティ境界を考慮しなければならりません。 [security_review]


    プロジェクトによって作成されたソフトウェアで強化メカニズムを使用しなければならないので、ソフトウェア欠陥がセキュリティ上の脆弱性を引き起こす可能性が低くなります。 (URLが必要です) [hardening]

    Hardening compiler flags are indeed typically used in builds intended for widespread distribution. See e.g. https://salsa.debian.org/debian-phototools-team/highway/-/blob/master/debian/rules#L6 and https://github.com/libjxl/libjxl/pull/2834#issuecomment-1761156078


  • 動的コード分析


    プロジェクトは、リリース前にプロジェクトによって作成されたソフトウェアの主要な製品リリースに対して、少なくとも1つの動的解析ツールを適用しなければなりません。 [dynamic_analysis]

    This is done as part of CI, see https://github.com/libjxl/libjxl/actions/workflows/fuzz.yml It is also done in the OSS-Fuzz project.



    プロジェクトは、生成するソフトウェアに多くの実行時アサーションを含めるべきであり、動的分析中にそれらのアサーションをチェックするべきです。 [dynamic_analysis_enable_assertions]

このデータは、Creative Commons Attribution version 3.0以降のライセンス(CC-BY-3.0 +)のもとで利用できます。すべての人がデータを自由に共有および適応できますが、適切にクレジットを入れる必要があります。 Jon SneyersとOpenSSFベストプラクティス バッジ貢献者のクレジットを入れてください。

プロジェクト バッジ登録の所有者: Jon Sneyers.
エントリの作成日時 2023-09-19 14:13:59 UTC、 最終更新日 2023-10-13 09:14:45 UTC 最後に2023-09-19 15:13:34 UTCにバッジ合格を達成しました。

もどる