의미 초월 버전 제어
3842 단어 opensourceprogramming
누가 의미 버전 제어를 따릅니까?
Semantic Versioning는 좋은 생각이다. 많은 항목이 그것을 따르고 싶지만 모든 항목이 100% 할 수 있는 것은 아니다.문제는 앞으로 호환되지 않는 변경 사항이 도입될 때마다 메인 버전이 늘어나는 것이다.사람들은 현재 버전이 1.3인 상황에서 MyLib 2.0을 발표하고 싶지 않다. 새 버전은 버그 하나만 복구되어 어떤 경우에는 이전 버전의 호환성을 파괴할 수 있다.다른 한편, 프로그램이나 라이브러리가 MyLib에 의존하는 사람으로서, 나는 모든 프로그램에서 안전하게 그것을 업데이트할 수 있기를 바란다.어떤 변경이 나의 코드를 파괴할 것이라고 걱정할 필요가 없다.
일부 항목이 정말 메인 버전을 추가했다. 설령 가장 가벼운 호환성이 없다 하더라도, 나는 v5 업그레이드 라이브러리에서 3개월 후에 이 점을 보는 것이 매우 무섭다는 것을 발견했다.0에서 v8까지.0, 지금 v12로 업데이트해야 합니다.0, 작지만 파괴적인 변경이 있기 때문이다.일반적인 상황에서, 나는 주요 버전이 중대한 변경을 도입하기를 희망한다. 비록 나는 이것이 샘프가 말한 것이 아니라는 것을 알고 있지만, 나는 생각을 멈출 수 없다. v3에서 v4로 이전하는 것이 반드시 안전한 복구만이 아니라는 것을.
나는 나의 기대가 전혀 근거가 없는 것이 아니라고 믿는다. 내가 사용한 대부분의 대형 라이브러리에 있어서 다음 주요 버전은 관리자가 정성껏 기획한 것이다. 변경을 타파하고 새로운 기능을 도입하는 것을 고려하고, 때로는 대량으로 다시 쓰기도 한다.그들은 X.Y.Z 버전 제어를 사용해 왔으며 버전을 주요 버전, 보조 버전, 마이크로 버전이라고 부른다.그러나 이들은 의미 버전 제어를 엄격히 따르지 않았다.
SemVer->breaking.json?
그래서 나는 우리가 무엇을 할 수 있을지 계속 생각했다. 만약 우리가 다른 방식으로 저장소의 돌파적인 변경 사항을 표시할 수 있다면?예를 들어, 중단된 변경 사항이 있는 버전 목록을 포함하는 유사
breaking.json
파일이 있습니다.{
"3.5.0": [
{
"change": "myProperty function has been removed",
"details": "https://github.com/MyName/MyRepo/issue/4321",
"impact": "low"
}
],
"3.0.0": [
{
"change": "myname function renamed to myName",
"details": "https://github.com/MyName/MyRepo/issue/4002",
"impact": "high"
}
]
}
이렇게 하면 npm update
또는 다른 명령을 실행할 때 현재 버전과 업그레이드할 버전 사이에 어떤 돌파적인 변화가 발생했는지, 그리고 세부 사항과 가능한 조작 설명을 볼 수 있다. 그리고 나는 계속할지 낮은 버전을 선택할지 결정할 수 있다.호환되지 않는 것을 발견할 때 항상 멈추거나, 무엇을 할 것인지, 내가 사용할 수 있는 최신 버전의 목록을 출력할 수 있는 미리 정의된 설정을 사용할 수 있습니다. 나중에 호환되지 않는 변경 사항은 필요 없습니다.업데이트 라이브러리를 더욱 복잡하게 만들 수 있지만, 개발자들에게 화면의 변경 사항을 이해하게 할 수 있는 방법은 많다.찬성 의견
기만하다
거의 우리가 얻을 수 있는 최선인가요?
나의 생각은 상당히 이상적이어서 실현하기 어려울 것이다.나도 이것이 정말 이런 상황을 개선시킬 수 있을지 확실하지 않다.아마도 현재 사람들이 주로SemVer를 사용하는 방식이 우리가 얻을 수 있는 가장 좋은 방식일 것이다. 여기서 약간의 돌파적인 변화가 있는데 다른 소프트웨어에 의존하면 비용이 들까?
이러한 상황을 개선할 수 있는 확실한 방법이 있는지 모르겠지만, 업그레이드할 때 사용자에게 보여줄 수 있는 파괴적인 변경 목록을 추가하는 것은 최소한 의식을 향상시키는 한 걸음이라고 생각합니다. 이것은 소스 관리자가 같은 질문에 대답하고 반복적인 문제를 해결하는 시간을 절약할 수 있다고 생각합니다.
소프트웨어 버전 제어와 관리 의존 관계를 개선할 수 있는 다른 방법이 있다고 생각합니까?
Reference
이 문제에 관하여(의미 초월 버전 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gregorywitek/beyond-semantic-versioning-3mc0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)