문제

때때로 당신은 당신을 소개할 필요가 뒤로 incompatibile 변경할 때,개선이 훨씬 능가 하는 문제점을 갖고 있습니다.그것은 쉽게 전환하는 오래된 행동이지만 사용자는 알고 있어야 합니다.

따라서 질문입니다: 는 방법을 발표하는 미래를 뒤로 호환되지 않는 변경을 치실(오픈 소스)프로젝트, 할 수 있습니다,그들을 위해 준비하고 변경하거나 그 사용을 구성하거나 프로그램을 사용하여 오래된 동작입니다.

기 때문에 그것은 OSS 프로젝트에 의해 포장하는 다양한 배포본을 독립적으로 수도를 자동으로 업그레이드 없이 사용자가입니다.과 그 뒤로 호환되지 않는 변경을 수도 엉망 somebodys 워크플로우(제삼자 스크립트를 예로 들).

도로 현재(사용):

  • 프로젝트 메일링 목록
  • 프로젝트 홈페이지
  • 릴리즈 노트(최초의 경고,후발표)
  • 관리자의 블로그

편집 1: 이(뒤로 호환되지 않)변경이 일어날 것에 주요 릴리스입니다.

모든 변경 사항에 대한 추가하거나 보호한(명령을 거부할 수 있는 철저하게 혼동하는 초보자는 사용자),또는 변경하는 기본값으로 더 많은 온전한 값입니다.

Edit2: 전환 기간에는 기본 구성(으로 의미있는 변경된 기본값으로 거부/deny)변경 경고, 으로,설명을 설정하는 방법의 경고한 것에 대하여 보호 뒤 incompatibile 변화에서의 기본 동작입니다.

그러나 자동 시스템는 도움이되지 않을 수도 있습니다...


프로젝트에서 질문 Git, 분산 버전 관리 시스템
게 조기 경고하는 사용자gitster s journal (Junio C Hamano 블로그)

도움이 되었습니까?

해결책

  • 변화의 주요 버전 번호
  • 그것을 발표를 통해 모든 도로에서 당신의 처분
  • 추가 눈에 띄는 발표에서는 읽어보기
  • 추가 코드로 변환하는이 오래되고 새로운 경우에 DB 또는 기타 변경이 필요합니다
  • 추가 감지하는 코드 사용의 상각방법,데이터 저장소 등 사용자에게 알 수행하기 전에 파괴적인 변화
  • 요청 관련 FAQ 유형에 대한 질문에는 주요 질문 웹사이트 그래서 사람들이 있는 쿼리를 응답이 즉각적이고 명백을 사용하여 간단한 검색

하지만 주요 버전 번호는 주요 대상 사람들이 기대하는 것 1.x2.×전환하는 원인 문제,그리고 더 조심 업그레이드 할 때.

-Adam

다른 팁

당신은 좋은 답변에 대해 단어를 얻는다.그러나 마이그레이션 내의 자신의 사고 방식은 가장 큰 문제는 나를 위해,특히 때 사용되지 않는 기능을 내 근육 메모리입니다.버리는 일보다 어렵습니다.

점점 경고 오는 incompatibilites 면 나는 실제로 사용하는 명령은 변경 특히 유용,특히 변화와 함께 기본값으로 초기화합니다.다음과 같습니다.

 $ git foo  
 Note: git foo currently defaults to HEAD. Starting with
 version 2.0, git foo will instead default to master.

나 갈 수 있는 RSS(if exists),트위터(if exists),메일링 리스트(메일에 3 회 이상 업데이트가 닫),홈페이지(매우 대조,그래서 그것에 쉽게 참조)그리고 블로그,물론입니다.릴리즈 노트에는 기뻐서 읽고,그래서 그것을 마지막으로 지점의 정보입니다.

(나는 게시된 이 처음으로 응답하지만,를 표시하지 않았)

위의 모든 플러스입니다.

이 있는 경우는 변경 어디:

정확한 구문의 비파괴 명령어 변경을 파괴적인 명령

나는 옵션이 없습니다 하지만 변경신 more 파괴를 렌더링하는 오래된 명령을 완전히 잘못되었는 경우에는 사용자가 업그레이드를 시도(또는 아마도 스크립트도)전 스타일의 명령을 종료와 함께한 설명이 포함된 오류 메시지에 stderr.사용 stderr 에 대한 경고 메시지를 명령에 미묘한(또는 그렇지 않은 미묘한)변경하는 비파괴적인은 또한 좋은 생각이 아니다.의 정의는 파괴적인은 좀 더 복잡한에서 소스 저장소

사용 stderr 에 대한 경고 간단한 사용 중단 방법은 종종 좋은지 어떤 사람들은 불평은 그것들(심하게 작성)스크립트가 있습니다.이러한 경우에 침묵하는 사용 중단 릴리즈(모든 비 침략적인 형태의 사용 중단)다음에 언어(stderr 경고)릴리스 다음에는 아마(아래 참고)이 아닌 기능적지만 현재 방출 따른 총을 제거합니다.이 아닌 마지막 기능 출시 될 것입니다 크게 의존한 프로젝트에 대한 질문에 그것이 수 있는 것보다 더 많은 문제는 그것의 가치,특히 그는 사용자가 잘 내렸고 최신 상태로 유지에 사용되지 않는 기능이 있습니다.

이후 특정 변경을 참조은 제거의 건축 기능이 잘해야한다 아마 없을 것 중 하나를 수행 릴리스와 내장된 기능이 아닌 기능 모드지 프로젝트 충분히 확실하게 말할.

참고 코드 보다는 스크립트를 수준의 변화에서 가능한 많은 현대 언어를 떠나서 방법을 명세서와 속성 주석에는 전적으로 숨기에서 그들을 intellisense 뿐만 아니라 거부를 컴파일하다.이것은 그들의 존재(간단한 예외 사용되는 경우)훨씬 더 좋은 방법을 찾는 사용할 수 없습니다 그들보다 runtime MissingMethodException 또는 어떤 것이다.

내$0.02.현대 개발 환경(특히,.NET)을 제공하는 의미의 보고 개발자에게는 특정한 Api 를 선언용/사용되지 않고 제거됩니다.Microsoft C/C++컴파일러가 #pragma deprecated.

이 없는 경우이에서 지원하는 환경에 의존 버전 관리 을 제공하 compat 피드백입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top