설치 없이 작곡가의 오래된 패키지 받기
final result
초기 생각은 디펜다봇을 실행하는 것이었고, 각 마이너 업그레이드에 대해
pr
를 여는 동안 동일한 작업을 수행할 수 있는 방법을 보는 것이 멋질 것이라고 생각했습니다.처음에는 동일한 composer 명령을 찾았으며 다음을 실행할 수 있습니다.
composer outdated --direct -f json
좋은 형식으로 오래된 패키지 목록을 얻으려면 😍
다음 생각은 그것을 서비스 뒤에 두거나 서버에 두는 것이었고, 이는 나를 다음 장애물로 이끌었습니다.
패키지를 설치하거나 다른 용도로 사용하지 않을 서버에서 설치 후 명령을 실행하고 싶지 않습니다.🤷🏻♂️
🤔 패키지를 설치하지 않고 오래된 패키지 목록을 얻으려면 어떻게 해야 합니까? 이를 위해 작곡가도 필요합니까?
고민 끝에
composer.json
와 composer.lock
를 이용해서 정보를 얻고 패키지 정보 API를 꾸러미스트에게 찾아보기로 했습니다.🤞🏻API는 json 확장자를 가진 URL에 가깝습니다🤫. 예를 들어,
monolog/monolog
에 대한 패키지 세부 정보를 얻으려면 URL 끝에 .json
를 추가하면 됩니다.packageist의 URL은 형식이 매우 잘 지정되어 있으므로
monolog/monolog
와 같은 패키지의 경우 URL은 https://packagist.org/packages/monolog/monolog.json
가 됩니다.이제 제약 조건과 현재 버전, 패키지 정보를 갖추고 스크립트를 작성해야 할 때였습니다.🤓
1단계: 파일 구문 분석
파이썬에서 사용 가능한
json
라이브러리를 사용하여 해당 파일에서 데이터를 가져왔습니다.2단계: packageist에서 메타데이터 읽기
repo 하위 도메인을 사용했지만 직접 URL도 작동합니다.
<스크립트 id="gist-ltag"src="https://gist.github.com/rishirajpurohit/b782298b1375dc4262351f4df27541fd.js"/>
3단계: 시맨틱 버전으로 작업하기 😯
<울>
Semantic Versioning 🤓
다른 경우를 처리해야 하고 git commit😒을 참조하는 일부 패키지가 있었기 때문에 이것은 가장 까다로운 부분이었습니다. 그러나 semantic-version
라이브러리를 시도하고 놀고 난 후에 구문 분석을 처리할 수 있었습니다. 파싱, 버전 비교 및 최종 결과 준비가 완료되면 수월했습니다.🥳
<스크립트 id="gist-ltag"src="https://gist.github.com/rishirajpurohit/03cf47a2fc95359e5c9ac941754325f7.js"/>
참고: 버전을 더 잘 처리하기 위해 NpmSpec
대신 SimpleSpec
클래스로 전환해야 했습니다. 이 라이브러리는 npm-semver
스크립트는 시작점일 뿐이지만 작성하는 것은 꽤 재미있었고 아마도 다른 종소리와 함께 테스트 케이스를 추가하는 객체 지향으로 확장할 것입니다 😉
즐거운 시간이 되었기를 바라며 코드에서 의미론적 버전 관리를 처리할 때 사용할 수 있는 멋진 도구 💪🏻를 제공했습니다. 프로세스를 다르게 설명했어야 하는 경우 댓글로 알려주세요.
나를 팔로우하고 박수를 치고 유니콘을 던지고 이 게시물을 친구, 가족, 이웃 및 길에서 만나는 모든 사람과 공유하십시오. 😄
Reference
이 문제에 관하여(설치 없이 작곡가의 오래된 패키지 받기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ri5hirajp/get-composer-outdated-packages-w-o-install-4f7o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)