Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Define LibreSign Behat taxonomy and reusable context conventions

オープン 初心者向け
#8,971 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
ドキュメント
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
php

調査の方向性

4つの承認済みタグ、明示的な除外、Context の所有権の境界、Behat 4 の step-design 規約を記載するよう、tests/integration/README.md を作成または更新する。API/OCS、OCC、page/HTML、補助サービスの動作を対象とする代表的な既存シナリオを確認し、その後、追加のタグを使用しない分類を文書化する。

索引モデルが issue の本文から書いたものです。

説明

backend enhancement php

Part of #8969.

Context

The LibreSign Behat suite spans API/OCS calls, OCC interactions, page/HTML behavior and tests that require auxiliary services such as Mailpit, TSA or fixture servers.

Behat 4 supports Cucumber tag expressions. The suite needs a small semantic taxonomy for focused local execution and CI selection, but shard assignment must remain automatic and must not be encoded in tags.

This issue also defines where generic Nextcloud test primitives belong versus LibreSign domain steps.

Goal

Document and adopt one clear convention for Behat tags, reusable Context ownership and step design before the suite-wide application work in #8972.

Initial tag taxonomy

Use only the following execution/interface tags in the initial migration:

@api

Apply when the scenario's behavior under test is exercised primarily through HTTP API/OCS endpoints.

Do not add @api merely because setup internally uses an HTTP request.

@occ

Apply when invoking or validating an OCC command is material to the scenario behavior.

Do not add @occ merely because incidental environment setup uses OCC.

@web

Apply when the scenario validates a web/page route, HTML response or other browser-facing web behavior rather than an API/OCS contract.

This tag does not imply that Playwright/browser automation is used.

@external

Apply when the scenario requires an auxiliary service/process outside the Nextcloud application process in order to exercise the behavior, such as Mailpit, the local TSA service or a fixture HTTP service.

@external means external to the Nextcloud application process; it does not mean public Internet access.

Tags intentionally not introduced yet

Do not introduce these during this epic unless a later concrete requirement creates a separate issue:

  • manual shard/worker tags such as @shard1 or @worker2;
  • domain tags such as @signing, @certificate, @policy or @notification; the current feature-directory/name structure already carries this organization;
  • @slow; runtime classification should be introduced only after measured timings establish a concrete CI use case and an objective threshold;
  • generic @network, because most integration scenarios already involve networking and the tag would not define a useful filter.

A scenario may carry more than one of the four approved tags when the meanings independently apply.

Context/step ownership

Use this boundary:

  • libresign/nextcloud-behat: generic Nextcloud/API/OCS/OCC primitives that are reusable by another Nextcloud app;
  • LibreSign FeatureContext and LibreSign integration code: signing, certificate, participant, envelope, policy and other LibreSign-specific behavior.

Before adding a LibreSign step for generic Nextcloud behavior, check whether nextcloud-behat already provides the primitive or whether the primitive belongs there.

Do not move a step into nextcloud-behat merely to reduce code in LibreSign if its vocabulary or behavior is LibreSign-specific.

Step-design convention

New or refactored steps should:

  • describe observable behavior rather than internal implementation calls when practical;
  • keep Given/When/Then responsibility clear;
  • avoid combining unrelated actions and assertions;
  • use explicit parameter types compatible with Behat 4;
  • use DataTable or DocString when structured input is clearer than several positional parameters;
  • avoid passing hidden state between scenarios;
  • preserve useful existing step text when the contract is already clear.

Documentation location

Create or update a concise tests/integration/README.md with these code-adjacent conventions so a contributor editing a feature can find the rules without searching the epic.

Full developer execution instructions belong in the canonical LibreSign/documentation workflow handled by the final cleanup/documentation issue.

Verification

Before closing this issue, demonstrate the documented taxonomy against representative existing scenarios:

  • one API/OCS scenario;
  • one OCC scenario if present;
  • one page/HTML scenario;
  • one scenario requiring an auxiliary service.

This verification is about proving the definitions are unambiguous; the suite-wide tagging is #8972.

Done when

  • The four approved tags (@api, @occ, @web, @external) are documented with the definitions above.
  • Shard, domain, @slow and generic network tags are explicitly excluded from the initial migration.
  • Generic Nextcloud versus LibreSign domain step ownership is documented.
  • Behat 4 step-design conventions are documented.
  • tests/integration/README.md contains the code-adjacent conventions.
  • Representative existing scenarios can be classified without inventing another tag.
主要言語
PHP
スター
835
フォーク
167
平均マージ
1日 1時間
マージ済み PR(30日)
384

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

LibreSign/libresign のほかの issue

LibreSign/libresign の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。