Free Trials

Download a free trial to find out which Altium software best suits your needs

Downloads

Download the latest in PCB design and EDA software

  • PCB DESIGN SOFTWARE
  • Altium Designer

    Complete Environment for Schematic + Layout

  • CircuitStudio

    Entry Level, Professional PCB Design Tool

  • CircuitMaker

    Community Based PCB Design Tool

  • NEXUS

    Agile PCB Design For Teams

  • CLOUD PLATFORM
  • Altium 365

    Connecting PCB Design to the Manufacturing Floor

  • COMPONENT MANAGEMENT
  • Altium Concord Pro

    Complete Solution for Library Management

  • Octopart

    Extensive, Easy-to-Use Component Database

  • PRODUCT EXTENSIONS
  • PDN Analyzer

    Natural and Effortless Power Distribution Network Analysis

  • See All Extensions
  • EMBEDDED
  • TASKING

    World-Renowned Technology for Embedded Systems Development

  • TRAININGS
  • Live Courses

    Learn best practices with instructional training available worldwide

  • On-Demand Courses

    Gain comprehensive knowledge without leaving your home or office

  • ONLINE VIEWER
  • Altium 365 Viewer

    View & Share electronic designs in your browser

  • Altium Designer 20

    The most powerful, modern and easy-to-use PCB design tool for professional use

    ALTIUMLIVE

    Annual PCB Design Summit

    • Forum

      Where Altium users and enthusiasts can interact with each other

    • Blog

      Our blog about things that interest us and hopefully you too

    • Ideas

      Submit ideas and vote for new features you want in Altium tools

    • Bug Crunch

      Help make the software better by submitting bugs and voting on what's important

    • Wall

      A stream of events on AltiumLive you follow by participating in or subscribing to

    • Beta Program

      Information about participating in our Beta program and getting early access to Altium tools

    All Resources

    Explore the latest content from blog posts to social media and technical white papers gathered together for your convenience

    Downloads

    Take a look at what download options are available to best suit your needs

    • Training & Events

      View the schedule and register for training events all around the world and online

    • Design Content

      Browse our vast library of free design content including components, templates and reference designs

    • Webinars

      Attend a live webinar online or get instant access to our on demand series of webinars

    • Support

      Get your questions answered with our variety of direct support and self-service options

    • Technical Papers

      Stay up to date with the latest technology and industry trends with our complete collection of technical white papers.

    Git tagging i aplikacja Git do opracowywania osprzętu w Altium Designer

    Ari Mahpour
    |  July 23, 2020
    Git tagging i aplikacja Git do opracowywania osprzętu w Altium Designer

    Idea wprowadzania poprawek w projektach układów elektronicznych jest dość rozpowszechniona w branży. Poprawiona wersja jest zazwyczaj oznaczona literą, a czasami również numerem. Istnieje wiele schematów oznaczania wersji projektu PCB, z którymi eksperymentowano, jednak według mojego doświadczenia w branży dominuje standardowe oznaczenie literowe. Zawsze zadaję sobie jedno pytanie: Co się stało z tymi wszystkimi wersjami pomiędzy? Rozumiem, że zmiana literowego oznaczenia wersji projektu PCB oznacza publikację, ale co się dzieje ze wszystkimi zmianami pomiędzy tymi wydaniami? Jak się je śledzi?

    Z czasem odpowiedź na to pytanie dały systemy kontroli wersji, takie jak CVS, Subversion czy Git. Programiści najprawdopodobniej znają aplikację Git, jednak jej wykorzystanie przy projektowaniu osprzętu to doskonały sposób na śledzenie poprawek, rozgałęzianie projektów PCB oraz publikowanie projektów. Takie systemy kontroli wersji projektów PCB pozwalają nam przeglądać wszystkie wersje pomiędzy wydaniami. W artykule Ciągła integracja i wdrażanie w ECAD omówiliśmy koncepcję publikowania nowych wersji projektu po każdej zmianie. W niniejszym artykule przedstawię prosty, ale skuteczny sposób publikowania wydań poprzez serwer Git przy jednoczesnym zachowaniu związku z literowym oznaczeniem wersji projektu PCB.

    Git tagging w projektach PCB

    Tagowanie Git to funkcja pozwalająca użytkownikom oznaczać konkretną zmianę dla celów specjalnych. Użytkownicy „tagują” zmianę, aby zasygnalizować jej wprowadzenie. Ktoś może np. otagować trzecią zmianę w repozytorium jako Wersję 1.0.0, podczas gdy dziesięć zmian później ta zmiana może ostatecznie być otagowana jako Wersja 1.1.0. Nie ma dobrych i złych metod tagowania, ale używanie tagowania Git dla publikacji to zazwyczaj główne zastosowanie tej funkcji. 

    Bez względu na to, czy zarządzamy projektami w programie Altium Concord Pro, GitHub, Bitbucket, Gitlab, czy też na dowolnym innym serwerze Git, wszystkie one pozwalają na tagowanie zmian. Niektóre serwery Git, np. GitHub i Bitbucket, mają własne systemy Git taggingu, które można uruchamiać z ich interfejsów sieciowych. W przypadku innych serwerów Git można korzystać z polecenia „git tag” w wierszu poleceń. Bez względu na wybrany sposób Git taggingu w systemie Git przy projektowaniu osprzętu zespół musi opracować system nazywania wersji projektu PCB, aby każdy rozumiał wzajemne powiązania różnych wersji.

    Powiązywanie wydania ze zmianą Git

    Ponieważ społeczność ECAD migruje do takich systemów kontroli wersji jak Git, koniecznie trzeba zachować powiązania między systemem Git a procesem, który wszyscy dobrze znają. Wiele osób miało problemy z określeniem najlepszego sposobu zachowywania ich zmian w systemie kontroli wersji projektu PCB przy jednoczesnym zachowaniu swobody w kompletowaniu pakietów, które można wysłać do dostawców (albo do weryfikacji na późniejszym etapie). Można sobie z tym poradzić na wiele sposobów. Proponuję, aby procesu publikowania nie traktować jako uniwersalnego rozwiązania, ale zachęcam do wypróbowania go jako punktu wyjścia i późniejszego dostosowania go do potrzeb grupy.

    Największym wyzwaniem jest zrozumienie wszystkich zmian Git, a następnie połączenie tego z wydawanym pakietem. Oto przykład serii zmian Git w GitHub:

     

    Git commit

    Rys. 1. Historia zmian Git w repozytorium GitHub przy wykorzystaniu Git Taggingu  

    As you can see, there are many commit comments that describe design changes, and other various commits comments that proclaim an “official release.” This is prevalent among many version control system users, and it generally works. I’ve also seen users bundling release packages within the repository as well. While this may not be the cleanest solution (as it pollutes the repository with non-design files), it does seem to get the trick done.

    Rather than making your official release known in a commit comment, we can leverage the concept of git tagging (or also known as “Releases” in GitHub). In this example, we have taken those official release commits and made them into releases in GitHub (which also become tags):

    Release view

    Rys. 2. Wersje projektu PCB. Widok wydań dla repozytorium projektu w GitHub

     

    Jak widać powyżej, wzięliśmy konkretne zmiany i przerobiliśmy je na wydania. Teraz GitHub dołącza tag do każdej zmiany, jak tutaj:

    Tag view
    Rys. 3. Widok Git taggingu dla repozytorium projektu w GitHub

    Na koniec możemy wyszukiwać wydania lub tagi w GitHub:

    searching for tags

    Rys. 4. Git tagging- część dalsza. Wyszukiwanie tagów w GitHub

    Powiązywanie schematu ze zmianą Git

    Innym sposobem na zapewnienie prawidłowego powiązania między projektem PCB a repozytorium Git jest śledzenie haszów Git w samym schemacie. John Watson pokazał mi kiedyś mały trick, gdy jeszcze używaliśmy Subversion. Poprzez wykorzystanie ciągów specjalnych można powiązać schemat (i projekt PCB) bezpośrednio ze zmianą Git przesyłaną do serwera Git. W tym przykładzie umieściliśmy ciąg kontroli wersji na schemacie najwyższego poziomu zaraz przy bloku tytułu:

    Git hash

    Rys. 5. Git tagging- zaawansowane zastosowania. Hash Git zastosowany jako ciąg specjalny

     

    Jak widać powyżej, na schemacie znajdują się dwie wersje haszów Git: pierwszy to pełny hasz Git, a drugi to jego skrócona wersja (tak jak występuje w GitHub). Aby zastosować hasz o pełnej długości, wprowadziłem następujący ciąg specjalny:

    =VersionControl_ProjFolderRevNumber

    Aby dołączyć do tego tytuł z przodu, trzeba dodać, co następuje:

    =’Git Hash:’ + VersionControl_ProjFolderRevNumber

    W czasie pisania tego artykułu okazało się jednak, że ten ciąg specjalny był zbyt długi, żeby go połączyć. Można temu zaradzić, ustawiając krótszy parametr VersionControl_ProjFolderRevNumber. W tym przypadku parametr został utworzony i ustawiony na wartość VersionControl_ProjFolderRevNumber w panelu Properties (Właściwości) tego konkretnego schematu.

    Redefining the Git

    Rys. 1. Historia zmian Git w repozytorium GitHub przy wykorzystaniu Git Taggingu
     

    Po skróceniu parametru możemy manipulować ciągiem. W tym przypadku chcemy mieć tylko 7 pierwszych znaków parametru GitHash, tak jak jest on wyświetlany w GitHub. Wprowadzamy następującą frazę połączonego i zmanipulowanego ciągu specjalnego:

    ='Git Hash: ' + Copy(GitHash,1,7)

    Trzeba pamiętać, że wszelkie zastosowane funkcje manipulowania ciągiem bazują na języku Delphi. Technika podciągu to zwykłe wywołanie funkcji Copy (Kopiuj) z Delphi zagnieżdżone w ciągu tekstowym. Po otwarciu dokumentów projektowych z wydania Git w Altium Designer będzie widać tag zawierający konkretne łącze bezpośrednio do kontrolowanej wersji projektu PCB.

    Wdrażanie Git taggingu do opracowywania osprzętu w Altium 365

    Ponieważ branża zaczyna wykorzystywać wersje w systemie Git do opracowywania sprzętu, zarówno lokalnie, jak i w chmurze, ważne jest, aby rozumieć połączenie między oficjalnym wydaniem projektu PCB a rzeczywistą rewizją Git (hashem), która istnieje w systemie kontroli wersji. Koncepcja hashów Git oraz ich wykorzystania przy publikowaniu projektu PCB w systemie kontroli wersji projektu PCB pozwala nam zachować to powiązanie i zapewnić zgranie obu procesów (lub systemów).

    Zamiast używać systemów kontroli wersji innych producentów, można wykorzystać Git do opracowywania osprzętu w Altium Designer i na platformie Altium 365. Ten system zastępuje rozwiązanie Git do kontroli wersji w chmurze i umożliwia członkom zespołu błyskawiczne importowanie projektów do Altium Designer. Alternatywnie można wdrożyć Altium Concord Pro lokalnie, dając zespołowi kompletny zestaw funkcji kontroli wersji i zarządzania danymi, które są zintegrowane z Altium Designer.

    Altium Designer na platformie Altium 365 wnosi do branży elektronicznej bezprecedensowy poziom integracji, która pozostawała domeną świata programowania, dając projektantom możliwość pracowania z domu i osiągnięcia niespotykanych dotąd wyżyn wydajności.

    W tym artykule poczuliśmy zaledwie przedsmak możliwości, jakie daje Altium Designer na platformie Altium 365. Aby uzyskać bardziej dogłębny opis funkcji, zajrzyj na stronę produktu lub zapoznaj się z jednym z seminariów internetowych na żądanie.

    About Author

    About Author

    Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

    most recent articles

    Back to Home