Outdated version of the documentation. Find the latest one here.

플러그인 배포

플러그인이 완성됐고 그 플러그인이 누군가에게 도움이 될 거라고 생각한다면, 주저하지 말고 공식 파이썬 플러그인 저장소 에 업로드하십시오. 해당 페이지에서 플러그인 인스톨러와 잘 동작할 수 있도록 플러그인을 준비하는 방법에 대한 패키지 작업 지침도 찾을 수 있습니다. 또는 여러분 자신만의 플러그인 저장소를 만들고자 할 경우, 플러그인 및 플러그인의 메타데이터의 목록을 담을 단순한 XML 파일을 생성하십시오. 다른 플러그인 저장소 페이지에서 그 예시를 찾아볼 수 있습니다.

다음 제안을 따라주시기 바랍니다.

메타데이터와 명칭

  • 기존 플러그인과 너무 비슷한 명칭은 피하십시오.

  • 여러분의 플러그인의 기능이 기존 플러그인의 기능과 유사할 경우, About 항목에 차이점을 설명해서 다른 사용자들이 실제로 설치하고 테스트해볼 필요 없이 어떤 플러그인을 사용해야 하는지 알 수 있도록 하십시오.

  • 플러그인의 명칭에 “plugin”을 붙이지 마십시오.

  • 메타데이터의 Description 항목에는 1줄짜리 설명을, About 항목에는 더 자세한 지침을 입력하십시오.

  • 코드 저장소, 버그 트래커와 홈페이지도 추가하십시오. 이런 항목들은 다른 사용자들과의 협동작업 가능성을 크게 높여줍니다. 사용 가능한 웹 인프라스트럭처(GitHub, GitLab, Bitbucket 등) 가운데 하나를 통해 매우 쉽게 협동작업을 할 수 있습니다.

  • 태그는 주의해서 선택하세요. 정보의 가치가 없는 태그(예: vector)는 피하고 다른 사람들이 이미 사용하고 있는 태그를 사용하십시오. (플러그인 웹사이트 참조)

  • 기본 아이콘을 그대로 두지 말고 적절한 아이콘을 추가하세요. QGIS 인터페이스를 참조해서 사용할 만한 스타일을 찾아보십시오.

코드와 도움말

  • 저장소 안의 자동 생성된 파일(ui_*.py, resources_rc.py, 생성된 도움말 파일, ...) 및 쓸모없는 파일(예: .gitignore)을 포함시키지 마십시오.

  • 플러그인을 적절한 메뉴(Vector, Raster, Web, Database)에 추가하십시오.

  • 만약 적합한 경우라면 (플러그인이 분석을 수행할 경우 등) 플러그인을 공간 처리 프레임워크의 하부 플러그인으로 추가하는 것을 고려해보세요. 그렇게 하면 사용자가 플러그인을 반복해서(batch) 실행하거나 더 복잡한 워크플로(workflow) 안에 통합시킬 수 있고, 인터페이스를 따로 설계할 필요도 없어집니다.

  • 적어도 최소한의 문서를 포함시키고 (플러그인 테스트 및 이해에 도움이 된다면) 샘플 데이터도 포함시키십시오.

공식 파이썬 플러그인 저장소

공식 파이썬 플러그인 저장소는 여기 에서 찾을 수 있습니다.

공식 저장소를 이용하려면 OSGEO 웹 포탈 에서 OSGEO ID를 만들어야 합니다.

플러그인을 업로드하고 나면 스태프들이 플러그인을 승인한 후 여러분에게 알려줄 것입니다.

TODO:

관리(governance) 문서로 연결되는 링크를 삽입

권한(permission)

공식 플러그인 저장소에서는 다음과 같은 규칙들이 시행되고 있습니다.

  • 모든 등록 사용자가 새 플러그인을 추가할 수 있습니다.

  • 스태프 사용자는 모든 플러그인의 버전을 승인하거나 불허할 수 있습니다.

  • 특수 권한인 plugins.can_approve 를 가진 사용자가 업로드한 버전은 자동적으로 승인됩니다.

  • 특수 권한인 plugins.can_approve 를 가진 사용자는 플러그인 소유자(owner) 목록에 등록되어 있는 경우 다른 사용자가 업로드한 버전을 승인할 수 있습니다.

  • 오직 스태프 사용자와 플러그인 소유자 만 특정 플러그인을 삭제 및 편집할 수 있습니다.

  • plugins.can_approve 권한이 없는 사용자가 새 버전을 업로드할 경우, 해당 플러그인 버전은 자동적으로 승인되지 않습니다.

신뢰(trust) 관리

스태프들은 프론트엔드 응용 프로그램을 통해, 선택된 플러그인 개발자에게 plugins.can_approve 권한을 설정해 신뢰(trust) 를 부여 할 수 있습니다.

플러그인 상세 뷰에 플러그인 개발자 또는 플러그인 소유자 에게 권한을 위임하는 다이렉트 링크가 있습니다.

검증

플러그인 업로드 시 자동적으로 압축 패키지로부터 플러그인의 메타데이터를 임포트해서 검증합니다.

여러분이 공식 저장소에 플러그인을 업로드하고자 할 때 알고 있어야 하는 검증 규칙은 다음과 같습니다.

  1. 플러그인을 담고 있는 주 폴더의 명칭은 오직 ASCII 문자(A-Z 및 a-z), 숫자 그리고 언더바(_) 및 하이픈(-)만 쓸 수 있습니다. 또한 숫자로 시작되면 안 됩니다.

  2. metadata.txt 파일은 필수적입니다.

  3. 메타데이터 표 에 있는 필수 메타데이터가 모두 있어야 합니다.

  4. version 메타데이터 항목은 고유한 버전이어야 합니다.

플러그인 구조

검증 규칙에 따르면 제대로 동작하는 플러그인으로서 검증되기 위해 플러그인의 압축(.zip) 패키지가 특정한 구조를 갖춰야 합니다. 사용자의 플러그인 폴더 안에 플러그인을 압축 해제하기 때문에 다른 플러그인과 서로 충돌하지 않으려면 .zip 파일 안에 자신만의 디렉터리를 가지고 있어야 합니다. 필수적인 파일은 metadata.txt__init__.py 입니다. 하지만 README 파일과 플러그인을 나타낼 아이콘(resources.qrc)도 있으면 당연히 좋겠죠. 다음은 plugin.zip 파일이 어떤 구조로 되어 있어야 하는지에 대한 예시입니다.

plugin.zip
  pluginfolder/
  |-- i18n
  |   |-- translation_file_de.ts
  |-- img
  |   |-- icon.png
  |   `-- iconsource.svg
  |-- __init__.py
  |-- Makefile
  |-- metadata.txt
  |-- more_code.py
  |-- main_code.py
  |-- README
  |-- resources.qrc
  |-- resources_rc.py
  `-- ui_Qt_user_interface_file.ui