Publikacja biblioteki cz. 1 – DSP#20

Planowałem rozbić publikację aplikacji na dwa etapy, wrzucenie do jakiegoś repozytorium bibliotek, oraz aktualizacje pliku README, publikacja na stronie android-arsenal. Niestety nie można zrobić jednego bez drugiego, dlatego też podzielę wpis na dwie części, w pierwszej dodamy pliki umożliwiające publikację do biblioteki, dopiszemy README, wybierzemy repozytorium, oraz zgłosimy chęć dodania projektu. W drugiej wrzucimy aplikację do repo, sklepu, oraz na stronę android-arsenal.

Wybór hostingu biblioteki

Bardzo popularnym swego czasu repozytorium dla bibliotek androidowych była strona jitpack.io. Mi jednak zależało na tym, żeby maksymalnie uprościć korzystanie, jeśli użyłbym jitpacka dochodzi jeszcze jedna linia konfiguracyjna po stronie klienta, mianowicie:

Dlatego wybrałem chyba najpopularniejsze repozytorium w świecie javowym: Maven central. O tym jak się do niego dostać w kolejnych akapitach.

Readme

Udało mi się również napisać dzisiaj readme, można je podziwiać tutaj. Mam nadzieję, że się podoba, chwilkę nad nim posiedziałem, to chyba mój pierwszy dokument tego typu w życiu. Skupiłem się na następujących punktach:

  • Overview
  • Screnshoots
  • Features
  • API
  • Examples
  • Download
  • License

Mam nadzieję, że uwzględniłem wszystko, ale jak coś, to komentarze są do dyspozycji.

Konfiguracja

Musiałem też wykonać trochę wstępnej konfiguracji, żeby móc opublikować bibliotekę. Listę zmian najlepiej obrazuje ten commit. Zmiany w plikach .kt są nieistotne z punktu widzenia sprawy. Jak widać, doszedł kolejny plik konfiguracyjny gradle.properties zawierający informacje o pomie. Podobnie znajduje się tam zupełnie nowy plik maven-push.gardle. W przypadku chęci opublikowania własnej biblioteki można stworzyć podobny komplet plików, zmieniając oczywiście adresy, nazwy, według własnych standardów.

Konfiguracja GPG

Chcąc wysłać swoją bibliotekę potrzebujemy skorzystać z GPG. Pierwszy raz zetknąłem się z tą technologią, niemniej nieoceniony okazał się program GPG4win. Bez potrzeby korzystania z linii komend wygenerował mi niezbędny klucz, który następnie mogłem wysłać razem z biblioteką.

Zgłoszenie

Po wykonaniu tych kroków zgłosiłem gotowość biblioteki do publikacji na jirze, w tym miejscu. Proces wygląda tak, że zakładamy konto na Sonatype, zgłaszamy chęć wydania biblioteki, oni rozwiązują to zadanie i podsyłają instrukcję jak publikować. U mnie potrwało to zaledwie minut, zresztą wystarczy spojrzeć tutaj.

Na ten moment to tyle, w następnej, przedostatniej części opiszę pozostałe kroki które będą odpowiadały za publikację i odrobinę rozpropagowanie aplikacji w sieci.

  • Dawid Loranc

    Osobiście licencję dałbym do osobnego pliku LICENSE.md, github nawet umożliwia wybór licencji z listy jak się dodaje przez stronę nowy plik o nazwie LICENSE.md.

    A poza tym to tak się powinno pisać readme (no, może pierwszy screen jest nieco za duży). Sporo projektów tego nie ma albo wybrakowane, co potem rzutuje na to czy dane narzędzie jest używane przez kogokolwiek.

    • migellal

      Hmm nie znałem tego z licencją. Nie mniej, zgadzam się w 100%, w wielu (również moich) projektach brakuje README. Mam ambitny plan w ciągu najbliższego miesiąca to poprawić. Mam nadzieję, że się to uda.