oca-port: 모듈 마이그레이션을 지원하는 새로운 OCA 도구

3644 단어 githubocagitodoo
OCA( Odoo Community Association )에는 OCA port 이라는 새 도구가 있습니다. 한 브랜치에서 다른 브랜치로 모듈의 포팅 및 백포팅 변경 사항을 포워드하는 데 도움이 되어 모듈 유지 관리 및 마이그레이션이 더 쉬워집니다.

이야기



이 모든 것은 2021년에 약 350개의 OCA 모듈로 구성된 Odoo 프로젝트를 13.0에서 14.0으로 마이그레이션하는 것으로 시작되었습니다. 활성 프로젝트에 대한 대규모 마이그레이션과 마찬가지로 마이그레이션 프로세스가 시작된 후에도 때때로 새로운 수정 및 개선 사항이 추가되었습니다. , 14.0에서 이미 마이그레이션된 모듈을 구식으로 만듭니다.

이 마이그레이션을 처리하려면 다음이 필요했습니다.
  • OCA 모듈을 13.0에서 14.0으로 마이그레이션(일반적으로),
  • 이미 마이그레이션된 14.0 모듈
  • 의 13.0에서 수행된 모든 수정 사항 및 기능 포팅
  • (더 중요) 개발자가 쉽고 편안하게 만들 수 있습니다
  • .

    그렇게 탄생한 oca-port!

    빠른 예



    리포지토리의 로컬 복사본으로 이동합니다. 전체 모듈을 마이그레이션할 수 있는지 또는 일부 변경 사항을 대상 버전으로 포팅해야 하는지 확인하고 싶다고 가정해 보겠습니다.

    $ cd path/to/OCA/stock-logistics-workflow
    $ oca-port 14.0 15.0 stock_split_picking
    


    다음과 같은 보고서가 생성됩니다.

    stock_split_picking already exists on 15.0, checking PRs to port...
    1 pull request(s) related to 'stock_split_picking' to port from origin/14.0 to origin/15.0
    
    1) PR #935 (https://github.com/OCA/stock-logistics-workflow/pull/935) [14.0][FW] stock_split_picking: Port PR from 13.0 to 14.0:
        By sonhd91, merged at 2021-12-20T08:21:17Z
        => Not ported: stock_split_picking
        => 2 commit(s) not (fully) ported
    


    마이그레이션(또는 누락된 변경 사항의 포트)을 처리하려면 쓰기 액세스 권한이 있는 저장소의 포크를 전달합니다(이것은 원격 git의 이름입니다. 먼저 추가해야 합니다).

    $ git remote add camptocamp [email protected]:camptocamp/stock-logistics-workflow.git
    $ oca-port 14.0 15.0 stock_split_picking --fork=camptocamp
    


    동일한 보고서가 표시되지만 이번에는 사용자 프롬프트가 표시됩니다.

    [...same report than above...]
    
    - Port PR #935 (https://github.com/OCA/stock-logistics-workflow/pull/935) [14.0][FW] stock_split_picking: Port PR from 13.0 to 14.0...
        Port it? [y/N]:
    


    '예'라고 대답하여 이러한 변경 사항을 이식해 보겠습니다.

    - Port PR #935 (https://github.com/OCA/stock-logistics-workflow/pull/935) [14.0][FW] stock_split_picking: Port PR from 13.0 to 14.0...
        Port it? [y/N]: y
        Create branch oca-port-pr-935-from-14.0-to-15.0 from origin/14.0...
            Apply ba5840f8 [FIX] stock_split_picking: README...
            Apply 2aeeffcf [IMP] stock_split_picking: allow splitting ppickings waiting for other operations...
        🎉 Last PR processed! 🎉
        Push branch 'oca-port-pr-935-from-14.0-to-15.0' to remote 'camptocamp'? [y/N]: y
        Create a draft PR from 'oca-port-pr-935-from-14.0-to-15.0' to '15.0' against OCA/stock-logistics-workflow? [y/N]: y
            PR created => https://github.com/OCA/stock-logistics-workflow/pull/1058
    


    로드맵


  • 마이그레이션하면 안 되는 모듈 및 풀 리퀘스트를 블랙리스트에 추가하고 이러한 데이터를 저장소의 파일 부분에 저장하여 다른 기여자와 공유합니다.
  • Python 패키지로서의 사용을 개선하고 출력을 JSON 또는 CSV로 생성합니다(이렇게 하면 예를 들어 여러 모듈에 대해 여전히 포팅해야 하는 항목에 대한 보고서를 얻고 작업을 추정하는 데 도움이 됩니다)

  • 자세한 내용과 옵션은 https://github.com/OCA/oca-port을 방문하세요!

    이 게시물의 기여자:
  • 세바스티앙 알릭스
  • 시모네 오르시
  • 데미안 크라이어
  • 질쉐릭스
  • 데니스 리만
  • 좋은 웹페이지 즐겨찾기