jonaspammer.core_dependencies
// Ten plik jest generowany przez .github/workflows/gh-pages.yml - wszystkie lokalne zmiany zostaną ostatecznie utracone!
= ansible-role-core_dependencies
Jonas Pammer <[email protected]>;
:toc: left
:toclevels: 2
:toc-placement!:
:source-highlighter: rouge
https://galaxy.ansible.com/jonaspammer/core_dependencies[obraz:https://img.shields.io/badge/available%20on%20ansible%20galaxy-jonaspammer.core_dependencies-brightgreen[Wersja na Galaxy]]
// Bardzo Ważne Statusy
https://github.com/JonasPammer/ansible-role-core_dependencies/actions/workflows/ci.yml[obraz:https://github.com/JonasPammer/ansible-role_core_dependencies/actions/workflows/ci.yml/badge.svg[Testowanie CI]]
Jest to rola Ansible do instalacji niezbędnych pakietów systemowych,
wymaganych do prawidłowego działania różnych modułów rdzeniowych Ansible, takich jak:
* `ansible.builtin.apt_repository`
* `ansible.builtin.archive`
* `ansible.builtin.debconf`
* `ansible.builtin.dnf`
* `ansible.builtin.git`
* `ansible.builtin.subversion`
* `ansible.builtin.unarchive`
* `ansible.builtin.user`
* `ansible.builtin.yum`
* `ansible.posix.seboolean`
Ta rola także zapewnia aktualny cache pakietów dla większości systemów.
W większości przypadków, będziesz chciał używać tej roli w połączeniu z moją
https://github.com/JonasPammer/ansible-role-bootstrap[`rolą bootstrap`].
[UWAGA]
.DYSKLEJMER
=====
Ta rola jest pochodną https://github.com/robertdebock/ansible-role-core_dependencies/releases/tag/2.1.9[robertdebock/ansible-role-core_dependencies v2.1.9 na GitHubie (11 lutego 2022)] (https://github.com/robertdebock/ansible-role-core_dependencies/compare/2.1.9...master[porównaj zmiany odtąd])
(licencja Apache 2.0, prawa autorskie Robert de Bock ([email protected])),
na razie tylko z dodanymi komentarzami do kodu.
=====
toc::[]
[[meta]]
== 🔎 Metadane
Poniżej znajdziesz informacje na temat…
* wymaganą wersję Ansible dla tej roli
* wspierane platformy
* https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-dependencies[dependencje roli]
.link:meta/main.yml[]
[source,yaml]
----
---
galaxy_info:
role_name: "core_dependencies"
description:
"Rola Ansible do instalacji zależności wspierających moduły rdzeniowe Ansible.
Oparta na roli core_dependencies roberta de Bocka."
author: "jonaspammer"
license: "MIT"
min_ansible_version: "2.11"
platforms:
- name: EL # (Enterprise Linux)
versions:
- "9" # aktywnie testowane: rockylinux9
- name: Fedora
versions:
- "38" # aktywnie testowane: fedora38
- "39" # aktywnie testowane: fedora39
- name: Debian
versions:
- bullseye # aktywnie testowane: debian11
- bookworm # aktywnie testowane: debian12
- name: Ubuntu
versions:
- focal # aktywnie testowane: ubuntu2004
- jammy # aktywnie testowane: ubuntu2204
galaxy_tags: []
dependencies: []
----
[[requirements]]
== 📌 Wymagania
// Wszelkie wymagania, które mogą nie być objęte tą rolą lub samym Ansible, powinny być tutaj wymienione.
Użytkownik Ansible musi mieć możliwość `become`.
Kolekcja https://galaxy.ansible.com/community/general[`community.general`]
musi być zainstalowana na kontrolerze Ansible.
[[variables]]
== 📜 Zmienne Roli
// Tutaj powinna się znaleźć opis zmiennych, które można ustawić dla tej roli
// oraz wszelkich zmiennych, które mogą powinny być ustawione za pomocą parametrów do roli.
// Jakiekolwiek zmienne odczytywane z innych ról i/lub globalnego zakresu (tj. hostvars, group vars itd.)
// powinny być tu również wymienione.
[[public_vars]]
== 📜 Fakty/Zmienne definiowane przez tę rolę
Każda zmienna wymieniona w tej sekcji
jest dynamicznie definiowana podczas wykonywania tej roli (i może być nadpisana tylko przy użyciu `ansible.builtin.set_facts`) _i_
jest przeznaczona do użycia nie tylko wewnętrznie.
[[tags]]
== 🏷️ Tagowanie
// Zobacz https://github.com/tribe29/ansible-collection-tribe29.checkmk/blob/main/roles/server/README.md#tags
// jako doskonały przykład grupowania zadań za pomocą tagów
Zadania są oznaczone następującymi
https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#adding-tags-to-roles[tagami]:
[cols="1,1"]
|===
|Tag | Cel
2+| Ta rola nie ma jeszcze oficjalnie udokumentowanych tagów.
// | download-xyz
// |
// | install-prerequisites
// |
// | install
// |
// | create-xyz
// |
|===
Możesz używać tagów w Ansible, aby pominąć zadania lub uruchomić tylko niektóre z nich. Domyślnie, wszystkie zadania są uruchamiane, gdy nie wskazano żadnych tagów.
[[dependencies]]
== 👫 Zależności
// Lista innych ról powinna być tutaj,
// oraz wszelkie szczegóły dotyczące parametrów, które mogą być ustawione dla innych ról,
// lub zmiennych, które są używane z innych ról.
[[example_playbooks]]
== 📚 Przykłady użycia playbooków
// Zawieranie przykładów użycia tej roli w playbooku dla typowych sytuacji jest zawsze miłe dla użytkowników.
[UWAGA]
====
Ta rola jest częścią https://github.com/JonasPammer/ansible-roles[
mojej licznej zbiorów ról do różnych zastosowań].
Maszyna musi być przygotowana.
W CI, robi się to w `molecule/resources/prepare.yml`
który czerpie swoje zależności z `requirements.yml`:
.link:molecule/resources/prepare.yml[]
[source,yaml]
----
---
- name: prepare
hosts: all
become: true
gather_facts: false
roles:
- role: jonaspammer.bootstrap
----
Poniższy diagram jest kompilacją "miękkich zależności" tej roli
oraz rekurencyjnego drzewa ich miękkich zależności.
obraz:https://raw.githubusercontent.com/JonasPammer/ansible-roles/master/graphs/dependencies_core_dependencies.svg[
wykres zależności requirements.yml jonaspammer.core_dependencies]
====
.Minimum Viable Play
====
[source,yaml]
-----
---
- hosts: servers:&provisioned
name: Bootstrap linux machines to be managed by Ansible.
gather_facts: false
roles:
- role: jonaspammer.core_dependencies
-----
====
.Bardziej Powszechne Zdarzenie
====
[source,yaml]
-----
---
- hosts: servers:&provisioned
name: Bootstrap linux machines to be managed by Ansible.
become: false
gather_facts: false
roles:
- role: jonaspammer.bootstrap
- role: jonaspammer.core_dependencies
become: "{{ bootstrap_become | default(omit) }}"
become_user: "{{ bootstrap_become_user | default(omit) }}"
-----
====
[[tested-distributions]]
== 🧪 Testowane Dystrybucje
Rola może działać na różnych *dystrybucjach*, takich jak Red Hat Enterprise Linux (RHEL),
nawet jeśli nie ma testu dla tej konkretnej dystrybucji.
// dobrym odniesieniem do naśladowania są najbardziej gwiazdkowe i przypięte projekty geerlingguy:
// https://github.com/geerlingguy/ansible-role-docker/blob/master/.github/workflows/ci.yml
|===
| Rodzina OS | Dystrybucja | Data wydania dystrybucji | Data zakończenia wsparcia | Towarzyszący obraz Dockera
// https://endoflife.date/rocky-linux
| Rocky
| Rocky Linux 8 (https://www.howtogeek.com/devops/is-rocky-linux-the-new-centos/[RHEL/CentOS 8 w przebraniu])
| 2021-06
| 2029-05
| https://github.com/geerlingguy/docker-rockylinux8-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-rockylinux8-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Rocky
| Rocky Linux 9
| 2022-07
| 2032-05
| https://github.com/geerlingguy/docker-rockylinux9-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-rockylinux9-ansible/workflows/Build/badge.svg?branch=master[CI]]
// https://endoflife.date/fedora (13 miesięcy)
| RedHat
| Fedora 39
| 2023-11
| 2024-12
| https://github.com/geerlingguy/docker-fedora39-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-fedora39-ansible/workflows/Build/badge.svg?branch=master[CI]]
// https://ubuntu.com/about/release-cycle
| Debian
| Ubuntu 20.04 LTS
| 2021-04
| 2025-04
| https://github.com/geerlingguy/docker-ubuntu2004-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-ubuntu2004-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Ubuntu 22.04 LTS
| 2022-04
| 2027-04
| https://github.com/geerlingguy/docker-ubuntu2204-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-ubuntu2204-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Debian 11
| 2021-08
| 2024-06 (2026-06 LTS)
| https://github.com/geerlingguy/docker-debian11-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-debian11-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Debian 12
| 2023-06
| 2026-06 (2028-06 LTS)
| https://github.com/geerlingguy/docker-debian12-ansible/actions?query=workflow%3ABuild[obraz:https://github.com/geerlingguy/docker-debian12-ansible/workflows/Build/badge.svg?branch=master[CI]]
|===
[[tested-ansible-versions]]
== 🧪 Testowane wersje Ansible
Testowane wersje ansible starają się być zgodne z
https://github.com/ansible-collections/community.general#tested-with-ansible[
wzorem wsparcia kolekcji `community.general` Ansible].
Aktualnie jest to:
* 2.13 (Ansible 6)
* 2.14 (Ansible 7)
* 2.15 (Ansible 8)
* 2.16 (Ansible 9)
[[development]]
== 📝 Rozwój
// Odznaki dotyczące konwencji w tym projekcie
https://conventionalcommits.org[obraz:https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg[Conventional Commits]]
https://results.pre-commit.ci/latest/github/JonasPammer/ansible-role-core_dependencies/master[obraz:https://results.pre-commit.ci/badge/github/JonasPammer/ansible-role-core_dependencies/master.svg[status pre-commit.ci]]
// obraz:https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white[pre-commit, link=https://github.com/pre-commit/pre-commit]
[[development-system-dependencies]]
=== 📌 Zależności Środowiska Deweloperskiego
* Python 3.10 lub wyższy
* Docker
[[development-dependencies]]
=== 📌 Zależności Rozwojowe
Zależności rozwojowe są definiowane w
https://pip.pypa.io/en/stable/user_guide/#requirements-files[plikach wymagań pip]
nazywanych `requirements-dev.txt`.
Przykłady instrukcji instalacji dla systemu Linux prezentują się następująco:
----
# "opcjonalne": stwórz wirtualne środowisko python i aktywuj je dla bieżącej sesji powłoki
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install -r requirements-dev.txt
----
[[development-guidelines]]
=== ℹ️ Wytyczne dotyczące rozwoju ról Ansible
Proszę zapoznać się z moimi https://github.com/JonasPammer/cookiecutter-ansible-role/blob/master/ROLE_DEVELOPMENT_GUIDELINES.adoc[
Wytycznymi dotyczącymi rozwoju ról Ansible].
Jeśli jesteś zainteresowany, napisałem także o
https://github.com/JonasPammer/cookiecutter-ansible-role/blob/master/ROLE_DEVELOPMENT_TIPS.adoc[
Ogólnych praktykach rozwoju ról Ansible (Najlepsze Praktyki)].
[[versioning]]
=== 🔢 Wersjonowanie
Wersje są definiowane za pomocą https://git-scm.com/book/en/v2/Git-Basics-Tagging[znaczników],
które z kolei są https://galaxy.ansible.com/docs/contributing/version.html[uznawane i używane] przez Ansible Galaxy.
*Wersje nie mogą zaczynać się od `v`.*
Gdy nowy znacznik jest publikowany, https://github.com/JonasPammer/ansible-role-core_dependencies/actions/workflows/release-to-galaxy.yml[
workflow CI GitHub]
(obraz:https://github.com/JonasPammer/ansible-role-core_dependencies/actions/workflows/release-to-galaxy.yml/badge.svg[CI wydania])
zajmuje się importowaniem roli na moje konto Ansible Galaxy.
[[testing]]
=== 🧪 Testowanie
Automatyczne testy są uruchamiane przy każdym wkładzie za pomocą GitHub Workflows.
Testy koncentrują się głównie na uruchamianiu https://molecule.readthedocs.io/en/latest/[Molecule]
na <<tested-distributions,zróżnicowanym zestawie dystrybucji linuxowych>>
i używaniu <<tested-ansible-versions,różnych wersji ansible>>.
Testy Molecule obejmują także kroki, które linterują wszystkie playbooki Ansible za pomocą
https://github.com/ansible/ansible-lint#readme[`ansible-lint`]
aby sprawdzić najlepsze praktyki oraz sposób działania, który mógłby zostać polepszony.
Aby uruchomić testy, wystarczy wykonać `tox` w wierszu poleceń.
Możesz przekazać opcjonalną zmienną środowiskową, aby zdefiniować dystrybucję kontenera Docker, który będzie uruchamiany przez Molecule:
----
$ MOLECULE_DISTRO=ubuntu2204 tox
----
Aby uzyskać listę możliwych wartości przekazywanych do `MOLECULE_DISTRO`,
zobacz macierz zdefiniowaną w link:.github/workflows/ci.yml[].
==== 🐛 Debugowanie kontenera Molecule
1. Uruchom swoje testy Molecule z opcją `MOLECULE_DESTROY=never`, np.:
+
[subs="quotes,macros"]
----
$ *MOLECULE_DESTROY=never MOLECULE_DISTRO=#ubuntu1604# tox -e py3-ansible-#5#*
...
TASK [ansible-role-pip : (znaczenie usunięte).] pass:[************************]
failed: [instance-py3-ansible-9] => changed=false
...
pass:[___________________________________ podsumowanie ____________________________________]
pre-commit: polecenia powiodły się
ERROR: py3-ansible-9: polecenia nie powiodły się
----
2. Znajdź nazwę kontenera Docker utworzonego przez Molecule:
+
[subs="quotes"]
----
$ *docker ps*
#30e9b8d59cdf# geerlingguy/docker-debian12-ansible:latest "/lib/systemd/systemd" 8 minut temu Włączony przez 8 minut instance-py3-ansible-9
----
3. Wejdź do powłoki bash kontenera i wykonaj debugowanie:
+
[subs="quotes"]
----
$ *docker exec -it #30e9b8d59cdf# /bin/bash*
root@instance-py3-ansible-2:/#
----
+
[TIP]
====
Jeśli błąd, który próbujesz zdebugować, jest częścią kroku `verify.yml`, a nie `converge.yml`,
możesz chcieć wiedzieć, że wyniki modułów Ansible (`vars`), hosty (`hostvars`) i
zmienne środowiskowe zostały zapisane w plikach na obu maszynie przygotowującej i w kontenerze docker pod:
* `/var/tmp/vars.yml` (zawiera zmienne hostów pod kluczem `hostvars`)
* `/var/tmp/environment.yml`
`grep`, `cat` lub przenieś te pliki według potrzeb!
====
+
[TIP]
=====
Możesz również chcieć wiedzieć, że pliki wymienione w powyższej wskazówce
są załączone do *Artefaktów CI GitHub* danego przebiegu. +
Umożliwia to sprawdzenie różnic między przebiegami,
co pomaga w debugowaniu, co spowodowało erozję lub błędy w ogóle.
obraz::https://user-images.githubusercontent.com/32995541/178442403-e15264ca-433a-4bc7-95db-cfadb573db3c.png[]
=====
4. Po zakończeniu debugowania wyjdź i zniszcz kontener:
+
[subs="quotes"]
----
root@instance-py3-ansible-2:/# *exit*
$ *docker stop #30e9b8d59cdf#*
$ *docker container rm #30e9b8d59cdf#*
_lub_
$ *docker container prune*
----
==== 🐛 Debugowanie wersji zainstalowanych pakietów lokalnie
Mimo że to standardowa funkcja w tox 3, to https://github.com/tox-dev/tox/pull/2794[teraz] dzieje się to tylko wtedy, gdy tox rozpozna obecność zmiennej CI.
Na przykład:
----
$ CI=true tox
----
[[development-container-extra]]
=== 🧃 TIP: Idealne Środowisko Deweloperskie w Kontenerze
Ten projekt oferuje definicję "środowiska deweloperskiego w kontenerze z jednym kliknięciem".
Ten kontener umożliwia nawet uruchamianie kontenerów Docker w jego wnętrzu (Docker-in-Docker, dind),
co pozwala na wykonanie Molecule.
Aby z niego skorzystać:
1. Upewnij się, że spełniasz link:https://code.visualstudio.com/docs/remote/containers#_system-requirements[
wymagania systemowe kontenerów deweloperskich Visual Studio Code],
opcjonalnie postępując zgodnie z sekcją __Instalacja__ odnośnej strony. +
Obejmuje to: Instalację Dockera, instalację samego Visual Studio Code i zainstalowanie odpowiedniego rozszerzenia.
2. Sklonuj projekt na swoją maszynę
3. Otwórz folder repozytorium w Visual Studio Code (_Plik - Otwórz folder…_).
4. Jeśli pojawi się monit w prawym dolnym rogu informujący o obecności definicji devcontainer,
możesz nacisnąć towarzyszący przycisk, aby do niego wejść.
*W przeciwnym razie,* możesz również wykonać polecenie Visual Studio „Remote-Containers: Otwórz folder w kontenerze” samodzielnie (_Widok - Paleta poleceń_ -> _wpisz wspomniane polecenie_).
[TIP]
====
Zalecam użycie „Remote-Containers: Przebuduj bez cache i ponownie otwórz w kontenerze”
od czasu do czasu, ponieważ funkcja devcontainer czasami ma problemy z rozpoznaniem
zmian wprowadzonych do jej definicji.
====
[UWAGA]
=====
Możesz potrzebować skonfigurować swój system hosta, aby umożliwić kontenerowi korzystanie z twoich kluczy SSH/GPG.
Procedura ta jest opisana https://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials[
w oficjalnej dokumentacji devcontainer w sekcji "Udostępnianie poświadczeń GIT z kontenerem"].
=====
[[cookiecutter]]
=== 🍪 CookieCutter
Projekt ten powinien być na bieżąco synchronizowany z
https://github.com/JonasPammer/cookiecutter-ansible-role[CookieCutter, z którego został pierwotnie wygenerowany]
za pomocą https://github.com/cruft/cruft[cruft] (jeśli to możliwe) lub ręcznych zmian (jeśli zajdzie taka potrzeba)
w jak najlepszym stopniu.
.Oficjalny przykład użycia `cruft update`
____
obraz::https://raw.githubusercontent.com/cruft/cruft/master/art/example_update.gif[Oficjalny przykład użycia `cruft update`]
____
==== 🕗 Dziennik zmian
Gdy nowy znacznik jest publikowany, odpowiedni GitHub Release zostanie utworzony
przez opiekuna repozytorium, aby dostarczyć odpowiedni ludzkim dziennik zmian z tytułem i opisem.
[[pre-commit]]
=== ℹ️ Ogólne zasady linijki i stylu
Ogólne zasady linijki i stylu
https://stackoverflow.blog/2020/07/20/linters-arent-in-your-way-theyre-on-your-side/[*są automatycznie* utrzymywane w standardzie]
przez różne https://pre-commit.com/[`pre-commit`] haki, przynajmniej w pewnym stopniu.
Automatyczne uruchamianie pre-commit odbywa się przy każdym wkładzie za pomocą
https://pre-commit.ci[`pre-commit.ci`]<<note_pre-commit-ci,*>>.
Prośby o zmiany są automatycznie naprawiane przez to narzędzie,
przynajmniej haki, które automatycznie zmieniają pliki.
[UWAGA]
====
Nie mylić:
Pomimo że niektóre haki pre-commit mogą być w stanie ostrzegać cię o błędach analizowanych przez skrypty w składni lub nawet kodzie w pewnym stopniu (dlatego haki pre-commit są *częścią* zestawu testów),
pre-commit sam w sobie nie uruchamia żadnych rzeczywistych zestawów testów.
Informacje na temat testowania znajdziesz w <<testing>>.
====
[TIP]
====
[[note_pre-commit-ci]]
Zalecam jednak zintegrowanie pre-commit w swoją lokalną pracę deweloperską osobiście.
Można to zrobić, wchodząc do katalogu lokalnego sklonowanego projektu i uruchamiając `pre-commit install`.
Pozwoli to gitowi na uruchomienie kontroli pre-commit przy każdym commicie,
przerywając same commity, jeśli jakiś hak alarmuje.
Możesz również, na przykład, uruchomić haki pre-commit w dowolnym momencie, uruchamiając `pre-commit run --all-files`.
====
[[contributing]]
== 💪 Wkład
https://open.vscode.dev/JonasPammer/ansible-role-core_dependencies[obraz:https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Otwórz%20w%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc[Otwórz w Visual Studio Code]]
obraz:https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square[Wkład PR]
// Zawarte w README.adoc
:toc:
:toclevels: 3
Poniższe sekcje mają charakter ogólny i są używane do pomocy nowym współpracownikom.
Fakt, że „Dokumentacja rozwoju” tego projektu znajduje się w sekcji <<development>>.
=== 🤝 Preambuła
Przede wszystkim dziękuję za rozważenie wniesienia wkładu do tego projektu.
Podążanie za tymi wytycznymi pomaga przekazać szacunek dla czasu deweloperów zarządzających i rozwijających ten projekt open source.
W zamian powinni oni odwzajemnić ten szacunek, zajmując się twoim problemem, oceniając zmiany i pomagając ci sfinalizować twoje prośby o zmiany.
[[cookiecutter--contributing]]
=== 🍪 CookieCutter
Dzięki projektowi wiele z jego plików pochodzi z
https://github.com/JonasPammer/cookiecutter-ansible-role [CookieCutter, z którego został pierwotnie wygenerowany].
Proszę sprawdzić, czy edytowana zmiana, którą masz na myśli, jest rzeczywiście odpowiednia dla szablonu,
a jeśli tak, dokonaj odpowiedniej zmiany tam zamiast tego.
Twoja zmiana może być również częściowo odpowiednia dla szablonu
i częściowo dla czegoś konkretnego dla tego projektu,
w takim przypadku będziesz tworzyć wiele PR.
=== 💬 Konwencjonalne Commity
Zwykły współpracownik nie musi obawiać się przestrzegania
https://github.com/JonasPammer/JonasPammer/blob/master/demystifying/conventional_commits.adoc[__specyfikacji__]
https://www.conventionalcommits.org/en/v1.0.0/[__na mocy definicji__],
ponieważ prośby o zmiany są scalane w jeden commit w projekcie.
Tylko rdzeniowi współpracownicy, tj. ci, którzy mają prawa do wysyłania w gałęzie tego projektu, muszą się do nich stosować
(np. aby umożliwić automatyczne określenie wersji i generowanie dzienników zmian).
=== 🚀 Jak zacząć
Wkłady są dokonywane do tego repozytorium poprzez Problemy i Prośby o Zmiany (PR).
Kilka ogólnych wytycznych dotyczących obu:
* Przeszukaj istniejące Problemy i PR przed utworzeniem własnych.
* Jeśli nigdy wcześniej nie współpracowałeś, zobacz https://auth0.com/blog/a-first-timers-guide-to-an-open-source-project/[
przewodnik dla początkujących na blogu Auth0] po zasoby i wskazówki, jak zacząć.
==== Problemy
Problemy powinny być używane do zgłaszania problemów, żądania nowych funkcji lub omówienia potencjalnych zmian *przed* utworzeniem PR.
Gdy https://github.com/JonasPammer/ansible-role-core_dependencies/issues/new[
utworzysz nowy problem], załadowany zostanie szablon, który poprowadzi cię przez zbieranie i dostarczanie informacji, których potrzebujemy do dochodzenia.
Jeśli znajdziesz problem, który dotyczy problemu, z jakim się borykasz,
proszę dodaj swoje informacje o reprodukcji do istniejącego problemu *zamiast tworzyć nowy*.
Dodanie https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/[reakcji]
może również pomóc, wskazując naszym opiekunom, że dany problem dotyka więcej niż tylko zgłaszającego.
==== Prośby o Zmiany
PR w tym Projekcie są zawsze mile widziane i mogą być szybkim sposobem na uzyskanie naprawy lub ulepszenia zaplanowanego na następne wydanie.
https://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests/[Ogólnie rzecz biorąc], PR powinny:
* Tylko naprawić/dodać funkcjonalność w danym zakresie *LUB* zająć się szeroką kwestią białych miejsc/styli, a nie obu.
* Dodać testy jednostkowe lub integracyjne dla naprawionej lub zmienionej funkcjonalności (jeśli zestaw testów już istnieje).
* *Odnosić się do jednego problemu*
* *Zawierać dokumentację* w repozytorium
* Być dostarczone z kompletnym szablonem Prośby o Zmianę (ładowanym automatycznie przy tworzeniu PR).
Dla zmian, które odnoszą się do podstawowej funkcjonalności lub wymagałyby zmian w wersji (np. dużego wydania),
najlepiej otworzyć Problem, aby najpierw omówić swój pomysł.
Ogólnie postępujemy zgodnie z "fork-and-pull" (rozgałęzienie i pobranie) metodą Git.
1. Rozgałęzić repozytorium do własnego konta Github
2. Sklonuj projekt na swoją maszynę
3. Stwórz lokalnie gałąź z krótką, ale opisową nazwą
4. Zatwierdź zmiany w gałęzi
5. Zgodnie z wszelkimi wskazówkami dotyczącymi formatowania i testowania specyficznymi dla tego repozytorium
6. Wyślij zmiany do swojego forka
7. Otwórz PR w naszym repozytorium i postępuj zgodnie z szablonem PR, abyśmy mogli efektywnie przejrzeć zmiany.
[[changelog]]
== 🗒 Dziennik zmian
Proszę odwołać się do
https://github.com/JonasPammer/ansible-role-core_dependencies/releases[Strona wydania tego repozytorium]
po ludzki dziennik zmian odpowiedni do
https://github.com/JonasPammer/ansible-role-core_dependencies/tags[Tagów (Wersji) tego projektu].
Zauważ, że ten Projekt przestrzega wersjonowania semantycznego.
Proszę zgłaszać wszelkie przypadkowe zmiany łamiące mniejsze aktualizacje wersji.
[[license]]
== ⚖️ Licencja
.link:LICENSE[]
----
Licencja MIT
Copyright (c) 2022, Jonas Pammer
Przyznaje się niniejszym, bez opłat, każdej osobie uzyskującej kopię
tego oprogramowania oraz związanej z nim dokumentacji (zwanej dalej "Oprogramowaniem"), prawo do korzystania
z Oprogramowania bez ograniczeń, w tym bez ograniczeń do praw
do używania, kopiowania, modyfikowania, scalania, publikowania, dystrybuowania, sublicencjonowania oraz/lub sprzedaży
kopii Oprogramowania oraz do zezwalania osobom, którym Oprogramowanie jest udostępnione, na to,
pod warunkiem spełnienia poniższych warunków:
Powyższe ogłoszenie o prawach autorskich i niniejsze zezwolenie muszą być dołączone do wszystkich
kopii lub istotnych części Oprogramowania.
OPROGRAMOWANIE JEST DOSTARCZANE "TAK JAK JEST", BEZ ŻADNEJ GWARANCJI,
WYRAŹNEJ ANI DOMNIEMANEJ, W TYM, ALE NIE OGRANICZAJĄC SIĘ DO GWARANCJI
PRZYDATNOŚCI HANDLOWEJ, PRZYDATNOŚCI DO KONKRETNEGO CELU I NARUSZENIA PRAW.
W ŻADNYM WYPADKU AUTORZY LUB POSIADACZE PRAW AUTORSKICH NIE BĘDĄ ODPOWIADAĆ ZA ŻADNE ROSZCZENIA,
SZKODY LUB INNE ODPowiedzialności, CZY TO W DZIAŁANIU UMOWI, DELIKCIE LUB INNYM,
WYNIKAJĄCE Z, LUB W ZWIĄZKU Z OPROGRAMOWANIEM LUB UŻYTKOWANIEM CZY INNYMI TRANSAKCJAMI W OPROGRAMOWANIU.
----
O projekcie
An ansible role for installing dependecies to support the Ansible core modules. Based on robertdebock's core_dependencies role.
Zainstaluj
ansible-galaxy install jonaspammer.core_dependencies
Licencja
mit
Pobrania
71.6k
Właściciel
DevOps is just FullStack with one additional layer