버그 리포트와 기능 개발 요청¶
중요
보안 관련 이슈는 “반드시” security@djangoproject.com. 에만 연락 주시기 바랍니다. 이는 쟝고 개발자들 중에서도 최고 수준 개발자들에게만 오랫동안 열려 있는 비공개 목록이며, 이에 대한 내용은 대중에 공개되지 않습니다. 좀 더 상세한 정보들은 :doc:` 우리의 보안 정책 </internals/security>` 문서를 참조하시기 바랍니다.
그렇지 않으면, `ticket tracker <https://code.djangoproject.com/>`_에 버그를 보고하거나 새로운 기능을 요청할 때, 다음과 같은 사항을 고려해주시기 바랍니다.
- 누군가 이미 버그나 기능요청을 티켓 트래커에 `searching`_나 진행중인 `custom queries`_로 제출하지 않았는지를 확인합니다.
- 지원 요청 질문들을 티켓시스템에 사용하지 마십시오. django-users 리스트나, #django IRC채널을 이용하시기 바랍니다.
- Don’t reopen issues that have been marked “wontfix” without finding consensus to do so on the Django Forum or django-developers list.
- Don’t use the ticket tracker for lengthy discussions, because they’re likely to get lost. If a particular ticket is controversial, please move the discussion to the Django Forum or django-developers list.
버그 리포팅¶
잘 쓰여진 버그 리포트들은 믿을수없을 정도로 유용합니다. 그러나 어떠한 버그 트래킹 시스템 작업들을 사용하는것들도 일정량의 오버헤드가 수반되므로 티켓 트래커를 최대한 유용하게 보관해 주시기 바랍니다
- 당신의 이슈가 잘 알려진 문제인지 보고싶다면 FAQ 1 를 꼭 읽어주세요
- 만약 당신이 보고있는것이 버그인지 확신할 수 없다면, 꼭 django-users 나 #django 에 먼저 물어봐주세요.
- 완전하고, 재현가능하고, 특정한 버그 리포트를 꼭 쓰시오. 문제에 대한 명확하고 간결한 설명과 문제를 재현하기 위한 지시사항을 포함해야 합니다. 코드 스니펫, 테스트 사례, 예외 백트레이스, 스크린샷 등과 같은 디버그 정보를 최대한 많이 추가세요. 작고 멋진 테스트 케이스는 버그를 신속하게 확인할 수 있는 유용한 방법을 제공하기 때문에 버그를 보고하는 가장 좋은 방법입니다.
- 버그 보고서를 제출했다는 것을 알리기 위해 |django-developers|에 게시하지 마십시오. 모든 티켓은 다른 목록인 |django-updates|로 전송되며, 이 목록은 개발자와 관심 있는 커뮤니티 구성원에 의해 추적됩니다. 우리는 티켓이 파일된 것을 볼 수 있습니다.
작성하신 티켓의 라이프사이클을 확인하시려면 다음 문서를 참조해 주세요 티켓 분류.
사용자 인터페이스 와 기능 버그 리포팅¶
버그나 기능 요청이 시각적인 성질을 건드리는 경우 따라야 할 몇 가지 추가 지침이 있습니다.
- Include screenshots in your ticket which are the visual equivalent of a minimal test case. Show off the issue, not the crazy customizations you’ve made to your browser.
- 스틸컷을 이용해 문제를 보이기가 어려울경우, 간단한 스크린 캐스트를 캡처하는것을 고려하십시오. 소프트웨어에서 허용하는 경우 화면의 관련 영역만 캡처합니다.
- If you’re offering a patch that changes the look or behavior of Django’s UI, you must attach before and after screenshots/screencasts. Tickets lacking these are difficult for triagers to assess quickly.
- 스크린샷이 리포팅에 필요한 다른 양식들을 면제해주지는 않습니다. 스크린샷에 보이는 행위를 재현하는 방법에 대한 URL, 코드 조각 및 단계적 지시들을 포함해야 합니다.
- 관심 있는 사람들이 티켓을 찾을 수 있도록 티켓에 UI/UX 플래그를 설정해야 합니다.
기능 요청¶
우리는 항상 Django를 더 좋게 만들기 위해 노력하고 있고, 이 부분에 있어 당신의 기능 요청은 매우 중요합니다. 다음은 요청을 가장 효과적으로 기능을 요청하는 방법에 대한 몇 가지 팁입니다
- 기능을 사용하려면 장고의 코어 변경이 필요한 경우를 확실히 하십시오. 예를 들어, 다른 데이터베이스 엔진을 지원하려는 경우처럼 아이디어를 독립적인 애플리케이션이나 모듈로 개발할 수 있다면, 독자적으로 개발할 것을 제안할 것입니다. 그리고 난 후 당신의 프로젝트가 커뮤니티의 충분한 지지를 받는다면, 우리는 그것을 장고에 포함시키는 것을 고려할 수 있습니다.
- First request the feature on the Django Forum or django-developers list, not in the ticket tracker. It’ll get read more closely if it’s on the mailing list. This is even more important for large-scale feature requests. We like to discuss any big changes to Django’s core before actually working on them.
- 누락된 기능이 무엇인지, 그리고 어떻게 구현하고 싶은지 명확하고 간결하게 설명하십시오. 가능한 경우 예제 코드(함수형태가 아니어도 괜찮음)를 포함하십시오.
- 이 기능을 원하는 *이유*에 대해 설명합니다. 최소한의 사용 경우를 설명하면 다른 사람이 해당 사용 사례가 어디에 적합한지, 그리고 동일한 사용 사례를 달성하는 다른 방법이 이미 있는지 이해하는 데 도움이 될 것입니다.
If there’s a consensus agreement on the feature, then it’s appropriate to create a ticket. Include a link to the discussion in the ticket description.
대부분의 오픈소스 프로젝트와 마찬가지로 코드 토크도 있습니다. 기능에 대한 코드를 직접 작성할 의향이 있거나, 이미 작성한 경우 훨씬 더 받아들여질 가능성이 높습니다. GitHub에서 Django를 포크하고 기능 브랜치를 생성한 다음 당신의 작품을 보여주세요!
이곳도 확인하세요: 새로운 기능을 문서화합니다..
의사 결정 방법¶
Whenever possible, we strive for a rough consensus. To that end, we’ll often have informal votes on django-developers or the Django Forum about a feature. In these votes we follow the voting style invented by Apache and used on Python itself, where votes are given as +1, +0, -0, or -1. Roughly translated, these votes mean:
- +1: “저는 그 아이디어를 매우 좋아하고 그것에 강하게 전념하고 있습니다.”
- +0: “괜찮을 것 같네요.”
- -0: “저는 흥미롭진 않지만, 반대하지는 않을 것입니다.”
- : “저는 그 생각이 현실로 바뀌는 것을 보는 것에 강하게 반대하며 매우 불행할 것입니다.”
Although these votes are informal, they’ll be taken very seriously. After a suitable voting period, if an obvious consensus arises we’ll follow the votes.
However, consensus is not always possible. If consensus cannot be reached, or if the discussion toward a consensus fizzles out without a concrete decision, the decision may be deferred to the steering council.
Internally, the steering council will use the same voting mechanism. A proposition will be considered carried if:
- There are at least three “+1” votes from members of the steering council.
- There is no “-1” vote from any member of the steering council.
투표는 일주일 이내에 제출해야 합니다.
Since this process allows any steering council member to veto a proposal, a “-1” vote should be accompanied by an explanation of what it would take to convert that “-1” into at least a “+0”.
Votes on technical matters should be announced and held in public on the django-developers mailing list or on the Django Forum.