Biến một dự án Python cá nhân thành một thư viện đáng tin cậy


28

Tôi là một học giả chứ không phải là một lập trình viên và tôi có nhiều năm kinh nghiệm viết các chương trình Python để sử dụng cho riêng mình, để hỗ trợ nghiên cứu của tôi. Dự án mới nhất của tôi có thể hữu ích cho nhiều người khác cũng như tôi và tôi đang nghĩ đến việc phát hành nó như một thư viện Python nguồn mở.

Tuy nhiên, dường như có khá nhiều trở ngại để vượt qua từ một dự án cá nhân hoạt động đến một thư viện có thể được cài đặt và sử dụng không đau đớn bởi những người khác. Câu hỏi này là về các bước đầu tiên tôi nên thực hiện để bắt đầu làm việc với một bản phát hành công khai.

Hiện tại, tôi có một kho git duy nhất chứa mã của tôi sử dụng thư viện cũng như chính thư viện và tôi sử dụng git làm nút hoàn tác khẩn cấp trong trường hợp có bất kỳ lỗi nào. Tất cả điều này hoạt động tốt cho một người dùng nhưng rõ ràng là không phù hợp nếu tôi muốn phát hành nó. Nơi tôi muốn kết thúc là thư viện của tôi nằm trong một kho lưu trữ riêng và có thể được cài đặt bởi những người khác bằng cách sử dụng pipvà có API ổn định.

Học cách sử dụng setuptools, v.v. có lẽ không quá khó một khi tôi muốn xuất bản nó - vấn đề của tôi là phải biết tôi nên làm việc như thế nào để đạt được điểm đó.

Vì vậy, câu hỏi của tôi là, những bước đầu tiên người ta nên làm để bắt đầu chuẩn bị một dự án thư viện Python cho tiêu dùng công cộng là gì? Làm thế nào tôi nên tổ chức lại cấu trúc thư mục của mình, kho git, v.v. để bắt đầu làm việc với việc phát hành thư viện công khai?

Tổng quát hơn, sẽ rất hữu ích nếu có những tài nguyên được biết là hữu ích khi thử lần đầu tiên. Con trỏ hướng tới các thực tiễn tốt nhất và sai lầm cần tránh, vv, cũng sẽ rất hữu ích.

Một số làm rõ: các câu trả lời hiện tại đang giải quyết một câu hỏi dọc theo dòng "làm thế nào tôi có thể làm cho thư viện Python của mình trở thành một câu hỏi hay cho người khác sử dụng?" Điều này rất hữu ích, nhưng nó khác với câu hỏi tôi dự định hỏi.

Tôi hiện đang bắt đầu một hành trình dài hướng tới việc phát hành dự án của mình. Cốt lõi của việc triển khai của tôi hoạt động (và hoạt động thực sự tốt), nhưng tôi cảm thấy bị choáng ngợp bởi số lượng công việc trước mắt và tôi đang tìm hướng dẫn về cách điều hướng quá trình. Ví dụ:

  • Mã thư viện của tôi hiện được kết hợp với mã tên miền cụ thể của riêng tôi sử dụng nó. Nó sống trong một thư mục con và chia sẻ cùng một kho git. Cuối cùng, nó sẽ cần được tạo thành một thư viện độc lập và đưa vào kho lưu trữ của riêng nó, nhưng tôi cứ trì hoãn điều này bởi vì tôi không biết làm thế nào để làm điều đó. (Không phải cách cài đặt thư viện trong 'chế độ phát triển' để tôi vẫn có thể chỉnh sửa thư viện, cũng như cách giữ đồng bộ hai git repos.)

  • Tài liệu của tôi rất ngắn gọn, vì tôi biết rằng cuối cùng tôi sẽ phải sử dụng Nhân sư hoặc một số công cụ khác. Nhưng những công cụ này dường như không đơn giản để học, vì vậy đây trở thành một tiểu dự án lớn và tôi tiếp tục thực hiện nó.

  • Tại một số điểm tôi cần học cách sử dụng setuptools hoặc một số công cụ khác để đóng gói và theo dõi các phụ thuộc, khá phức tạp. Tôi không chắc liệu tôi có cần phải làm điều này ngay bây giờ hay không và tài liệu này là một mê cung tuyệt đối cho một người dùng mới, vì vậy tôi tiếp tục quyết định thực hiện nó sau.

  • Tôi chưa bao giờ phải thực hiện thử nghiệm có hệ thống, nhưng tôi chắc chắn sẽ làm cho dự án này, vì vậy tôi phải (i) tìm hiểu đủ về thử nghiệm để biết phương pháp nào phù hợp với dự án của mình; (ii) tìm hiểu những công cụ có sẵn cho phương pháp đã chọn của tôi; (iii) học cách sử dụng công cụ đã chọn của tôi; (iv) triển khai các bộ thử nghiệm, vv cho dự án của tôi. Đây là một dự án trong chính nó.

  • Cũng có thể có những thứ khác tôi phải làm là tốt. Ví dụ, jonrsharpe đã đăng một liên kết hữu ích có đề cập đến git-Flow, tox, TravisCI, virtualenv và CookieCutter, không ai trong số chúng tôi nghe thấy trước đây. (Bài đăng là từ năm 2013, vì vậy tôi cũng phải thực hiện một số công việc để tìm hiểu xem hiện tại vẫn còn bao nhiêu.)

Khi bạn kết hợp tất cả lại với nhau, đó là một khối lượng công việc khổng lồ, nhưng tôi chắc chắn rằng tôi có thể hoàn thành mọi việc nếu tôi tiếp tục thực hiện nó và tôi không vội vàng. Vấn đề của tôi là biết làm thế nào để chia nó thành các bước có thể quản lý có thể được thực hiện cùng một lúc.

Nói cách khác, tôi đang hỏi đâu là những bước cụ thể quan trọng nhất tôi có thể thực hiện bây giờ, để đạt được một sản phẩm đáng tin cậy cuối cùng. Nếu tôi có một ngày cuối tuần rảnh rỗi, tôi nên tập trung vào những điều này? Mà (nếu có) có thể được thực hiện tách biệt với những người khác, để tôi ít nhất có thể hoàn thành một bước mà không cần phải làm toàn bộ? Cách hiệu quả nhất để học những điều này là gì để tôi vẫn có thời gian tập trung vào chính dự án? (Phải ghi nhớ rằng tất cả những điều này về cơ bản là một dự án sở thích, chứ không phải việc của tôi.) Có bất kỳ của nó mà tôi không thực sự cần phải làm , do đó tiết kiệm cho mình một lượng lớn thời gian và công sức?

Tất cả các câu trả lời đều được đánh giá cao, nhưng tôi đặc biệt hoan nghênh các câu trả lời tập trung vào các khía cạnh quản lý dự án này, với tham chiếu cụ thể để phát triển Python hiện đại.



10
Cách tốt nhất để kiểm tra xem một thư viện đã sẵn sàng để phát hành "vào thế giới hoang dã" là yêu cầu một nhà nghiên cứu hoặc sinh viên cố gắng sử dụng nó và viết ra tất cả những khó khăn mà họ gặp phải. Nếu họ có thể sử dụng nó mà không cần phải liên tục gọi bạn để được hỗ trợ, thì thư viện có hình dạng mà người khác có thể sử dụng.
Bart van Ingen Schenau 31/12/18

@jonrsharpe cảm ơn, có rất nhiều thông tin siêu hữu ích ở đó
Nathaniel

@BartvanIngenSchenau cảm ơn bạn, tôi chắc chắn sẽ ghi nhớ điều đó một khi tôi đã gần đến bước đó. Bây giờ tôi đang ở giai đoạn "bước đầu tiên", lấy một thứ gì đó hoạt động nhưng còn rất xa để sẵn sàng phát hành, và tự hỏi làm thế nào tôi nên làm mọi thứ ngay bây giờ để đảm bảo nó có thể trở nên đáng tin cậy trong tương lai.
Nathaniel

3
Bạn chắc chắn nên tạo một repo git độc lập cho thư viện và sau đó là khách hàng đầu tiên của riêng bạn. Chỉ sử dụng thư viện trong dự án của bạn như một thư viện thích hợp, không liên kết với nguồn của nó.
Ian MacDonald

Câu trả lời:


22

Thêm một setup.py, trong khi cần thiết, không phải là bước quan trọng nhất nếu bạn muốn thư viện của mình được sử dụng. Quan trọng hơn là thêm tài liệu và quảng cáo thư viện của bạn. Vì điểm thứ hai phụ thuộc rất nhiều vào thư viện, hãy để tôi tập trung vào khía cạnh tài liệu.

  1. Bạn biết mọi thứ về thư viện của bạn. Và đây là vấn đề. Bạn đã biết cách cài đặt và cách sử dụng nó, vì vậy nhiều thứ có vẻ trực quan hoặc rõ ràng đối với bạn. Thật không may, những điều tương tự có thể không rõ ràng, không trực quan cho người dùng. Cố gắng nhìn vào thư viện của bạn như thể bạn không biết gì về nó, và quan trọng hơn, yêu cầu người khác sử dụng nó và cố gắng phát hiện ra tất cả những khó khăn họ gặp phải.

  2. Giải thích, bằng tiếng Anh, thư viện của bạn nói về cái gì Quá nhiều thư viện cho rằng mọi người đều biết về chúng. Khi đây không phải là trường hợp, có thể khó nắm bắt mục đích của thư viện là gì.

  3. Viết tài liệu kỹ thuật chi tiết, nhưng cũng đừng quên các đoạn mã ngắn hướng dẫn cách thực hiện một số nhiệm vụ với thư viện của bạn. Hầu hết các nhà phát triển đang vội, và nếu họ cần dành hàng giờ cố gắng để hiểu cách làm một điều cơ bản, họ có thể có xu hướng chuyển sang các thư viện khác.

  4. Bao gồm thông tin liên lạc của bạn. Nếu thư viện của bạn là một thành công (và kinh nghiệm của riêng tôi đã chỉ ra rằng đây là trường hợp ngay cả đối với những người chưa biết rõ), mọi người sẽ gặp khó khăn với nó: hoặc là lỗi hoặc đơn giản là khó hiểu hoặc sử dụng một số phần của nó. Việc nhận phản hồi của họ để cải thiện thư viện của bạn thường rất hữu ích: đối với mỗi người báo cáo sự cố, có thể có hàng trăm người, khi gặp phải vấn đề đó, họ chỉ muốn chuyển sang thư viện khác.

Ngoài ra:

  1. Làm rõ nếu thư viện của bạn hoạt động với Python 2 hoặc 3 hoặc cả hai.

  2. Nếu thư viện không hoạt động trên Windows, hãy nói như vậy.

  3. Đảm bảo bạn sử dụng các quy ước chính thức (sử dụng pep8 để kiểm tra). Nếu không, hoặc giải thích rõ ràng hoặc sửa chữa nó.

  4. Chăm sóc xử lý các trường hợp cạnh. Khi thư viện của bạn được gọi với một loại sai hoặc với một giá trị không được hỗ trợ, nó sẽ nói, bằng tiếng Anh, điều gì chính xác là sai. Điều không nên làm là nâng một ngoại lệ khó hiểu mười cấp xuống ngăn xếp và để người dùng tìm ra điều gì đã sai.


Cảm ơn bạn, tôi hoàn toàn đồng ý rằng chất lượng của tài liệu tạo ra hoặc phá vỡ một dự án. . Làm thế nào tôi có thể biết cái nào tôi nên đầu tư vào việc học cho dự án của mình?
Nathaniel

3
@Nathaniel Sphinx là một chút khó khăn để thiết lập nhưng là tiêu chuẩn thực tế. Bạn có thể sử dụng readthedocs.org để lưu trữ tài liệu Sphinx trên web. Sphinx có thể sử dụng các tài liệu từ các chức năng và mô-đun trong thư viện của bạn. Ngoài ra, chỉ cần tự gõ các tài liệu trong tệp readme, nhưng điều đó sẽ gây khó khăn cho các dự án lớn hơn. Dự án Python tôi duy trì sử dụng các trang Github cho tài liệu Sphinx có nghĩa là tôi phải cam kết các tệp HTML, mặc dù tôi đang có kế hoạch tránh xa điều đó.
amon

5
How can I tell which one I should invest in learning for my project?- bạn không. Bạn dành một ít thời gian để chọn một thứ có vẻ hợp lý và lăn lộn với nó. Là một nhà phát triển javascript nơi bạn có 40 tùy chọn cho mỗi quyết định, tôi hứa đây là quyết định đúng đắn :)
aaaaaa

2

Đã sử dụng một vài thư viện ít hơn so với các thư viện trưởng thành trong nhiều năm, một lời khuyên chính là khi bạn chọn công cụ triển khai của mình, hãy làm như sau: Thư viện của bạn có làm điều gì đó thực sự hữu ích để bạn có thể xây dựng một cộng đồng xung quanh không?

Xác định các phụ thuộc thư viện của bạn.

Cố gắng triển khai vào một môi trường sạch hoặc là một thùng chứa sổ ghi chép hoặc VM. Tôi coi bước này rất quan trọng vì tất cả thường có một cái gì đó độc đáo về môi trường cá nhân gây ra vấn đề.

Hãy xem xét ai sẽ duy trì thư viện trong tương lai, không có gì bực bội hơn là đi qua một thư viện là dự án thú cưng của ai đó trong ba hoặc bốn năm và sau đó không nhận được các bản cập nhật cần thiết để cập nhật.

Xem xét nếu bạn hoặc nhóm của bạn muốn thực hiện cam kết giữ cho thư viện được kiểm tra và ghi lại (các bài kiểm tra đơn vị và đường ống CI bắt đầu là một phần của phương trình ihere).


2

Có lẽ bạn có thể tìm thấy một dự án OSS trưởng thành trong lĩnh vực của mình và đóng góp mã của bạn cho dự án đó? Có thể có một vài lợi thế, chẳng hạn như:

  • Bạn có thể tối đa hóa sự đóng góp của bạn. Thật vậy, nhiều dự án OSS "sở thích" có khả năng có giá trị nhưng được cộng đồng sử dụng rất ít (xem câu trả lời @ReaddyEddy). Đó chỉ là rất nhiều nỗ lực để làm cho dự án ban đầu, sau đó để duy trì nó, quảng cáo nó, cung cấp các ví dụ và tài liệu thích hợp, v.v.
  • Rất nhiều vấn đề kỹ thuật mà bạn đề cập sẽ được giải quyết trong dự án trưởng thành.
  • Nếu thư viện của bạn tăng thêm giá trị cho dự án OSS, những người đóng góp của nó có thể giúp bạn đưa mã của mình đạt tiêu chuẩn dự án. Vì vậy, bạn có thể tiết kiệm nỗ lực và tích lũy kinh nghiệm. Bạn cũng sẽ nhận được câu trả lời cụ thể về Sphinx, TravisCI, CookieCutter và các khía cạnh kỹ thuật khác.

Nếu có một dự án OSS có liên quan mà bạn thích và có thể sử dụng, tại sao không mở một vấn đề hoặc yêu cầu kéo hoặc liên lạc với các nhà bảo trì? (Một cách tốt để bắt đầu có thể là giải quyết vấn đề hiện có.)


Cảm ơn bạn, đó là một ý tưởng tốt. Tuy nhiên, trong trường hợp của tôi, không có gói nào hiện có mà mã của tôi có thể được tích hợp. Có một dự án OSS được thành lập với chức năng tương tự, nhưng nó được xây dựng trên công nghệ khác nhau và sử dụng thuật toán cơ bản khác nhau làm cốt lõi. . có sẵn ngoài việc phát triển nó như một dự án mới.
Nathaniel

2

Đó là năm 2019, tôi thực sự khuyên bạn nên bắt đầu với các công cụ hiện đại nhất. Bạn không cần setup.py, đó là điều mà mọi người trong cộng đồng Python muốn loại bỏ và tôi tin cuối cùng họ sẽ làm được.

Hãy thử thơ , bạn sẽ không hối tiếc.


1
Cảm ơn bạn đã trả lời. Tôi sẽ xem xét Thơ. Tôi muốn nói mặc dù, rằng vào năm 2019 nó fantastically khó khăn đối với một người mới để làm việc ra những gì các công cụ hiện đại nhất thực sự là. Nếu bạn không biết thì rất khó để biết công cụ nào là tiêu chuẩn thực tế mà mọi người sử dụng và đó là một trong số rất nhiều dự án thử nghiệm và rans. Tài liệu chính thức không theo kịp những điều này và quá trình phát triển diễn ra nhanh đến mức mọi tài liệu giới thiệu tôi tìm thấy đều được bảo đảm là hết hạn.
Nathaniel

Tất cả đều là để nói lời cảm ơn vì đã nói với tôi rằng Thơ là thứ tôi nên xem xét, thay vì ba hoặc bốn dự án đang hoạt động khác mà tôi thấy dường như cũng làm điều tương tự. Đây là loại thông tin tôi đã hy vọng nhận được từ câu hỏi này.
Nathaniel

@Nathaniel Python "Bao bì" đang thay đổi nhanh chóng (và đó là lý do tại sao có nhiều cách để làm điều này và thật khó để tìm ra thứ gì tốt nhất), nhưng với PEP 517, 518 được thực hiện bởi nhiều công cụ (như Thơ), cuối cùng chúng ta cũng có một cái gì đó không quá khủng khiếp Lưu ý rằng Thơ không nhất thiết là công cụ "tốt nhất", nhưng ít nhất nó là một trong những công cụ tốt nhất. Hãy xem testandcode.com/52 , bạn sẽ có một ý tưởng khá hay xung quanh chủ đề này.
laike9m

Cảm ơn bạn, điều đó rất hữu ích, tôi đang lắng nghe. Có lẽ tất cả điều này có nghĩa là tôi nên đặt bao bì sang một bên bây giờ và tập trung vào các khía cạnh khác (ví dụ: công cụ học tập cho tài liệu và thử nghiệm), đơn giản vì có thể có một hệ sinh thái đóng gói Python ổn định hơn trong sáu tháng hoặc lâu hơn.
Nathaniel

2

Đây là một câu hỏi phức tạp mà bạn đang hỏi và tôi hoàn toàn đồng ý câu trả lời của Arsen . Tài liệu tốt là một khía cạnh rất quan trọng. Nếu tôi không thành công để mở thư viện của bạn và chạy với một vài bước đơn giản, tôi sẽ bỏ nó ngay tại đó (trừ khi tôi thực sự lo lắng để thử nó).

Một số điều bạn chắc chắn xem xét

  • Hãy suy nghĩ về cách bạn sẽ đến phiên bản thư viện của bạn. Bạn muốn có khả năng tương thích ngược với một số cấp độ và các lỗi cũng dọc theo tuyến đường. Đọc về phiên bản ngữ nghĩa
  • Bạn đang sử dụng git theo cách tương đối tuyến tính (để hoàn tác). Bạn có quen thuộc với việc phân nhánh trong git . Nó thực sự không khó, và làm cho cuộc sống dễ dàng. Một khi bạn đã nắm được với các chi nhánh. Điều chỉnh mô hình phân nhánh cho kho lưu trữ của bạn. Chọn các phần của mô hình phân nhánh này mà bạn cho là có liên quan. Cũng so sánh điều này với các chi nhánh từ kho lưu trữ mà bạn đang sử dụng.
  • Cấp giấy phép: bạn nên cung cấp giấy phép cho thư viện của bạn. Tôi không phải là chuyên gia pháp lý về vấn đề này, vì vậy tôi chỉ có thể chia sẻ một liên kết đến sự so sánh này giữa các giấy phép phổ biến . Đừng xem nhẹ lựa chọn này.
  • Theo dõi lỗi. Bạn muốn người dùng đó có thể cung cấp cho bạn các báo cáo lỗi. Điều này giúp bạn cải thiện chất lượng của mã. Đối với mỗi lỗi mà bạn giải quyết, hãy thêm một thử nghiệm vào khung thử nghiệm của bạn, điều này đảm bảo rằng nó không phanh trong tương lai (thử nghiệm hồi quy). Một hệ thống theo dõi lỗi có thể được sử dụng cho các yêu cầu tính năng.
  • Đóng góp của người dùng. Bạn có muốn đóng góp của người dùng? Tôi không chắc cách thức này thường hoạt động trên các sản phẩm nguồn mở, nhưng tôi có thể tưởng tượng rằng bạn có thể cho phép người dùng tạo các nhánh tính năng. Thông qua github, bạn dường như có thể kiểm soát điều này thông qua các yêu cầu kéo

Tôi không có kinh nghiệm liên quan với Python, vì vậy tôi không thể đưa ra cho bạn bất kỳ gợi ý nào theo hướng đó. Tuy nhiên, có thể tự động hóa tất cả các thử nghiệm được kích hoạt bởi mỗi cam kết trên kho lưu trữ từ xa của bạn (tức là sử dụng Jenkins ). Tuy nhiên tôi đề nghị hoãn việc này lại, bởi vì có rất nhiều công việc phải thiết lập mà không có kinh nghiệm trước đó.


2

Đây là những câu hỏi tuyệt vời.

Về các bước gia tăng cụ thể quan trọng đối với một thư viện đáng tin cậy:

  • Tách các tệp sẽ trở thành thư viện từ phần còn lại của dự án.
    • Thư viện nên đi vào kho git của riêng nó nhưng bạn có thể thấy đây là một bước trung gian hữu ích để đặt nó vào một thư mục cấp cao nhất trong kho lưu trữ hiện tại của bạn. Khi bạn biến nó thành một kho lưu trữ riêng biệt, lưu trữ liền kề với phần còn lại của dự án, sau đó có thể tham chiếu đến nó ../librarycho đến khi bạn đi xung quanh các bước của chế độ phát triển và đóng gói pip.
    • Tất cả các truy cập từ phần còn lại của dự án vào thư viện này phải thông qua API công khai. Bạn có thể tìm thấy một số phụ thuộc lẫn nhau để trêu chọc nhau.
  • Hãy tăng dần viết các tài liệu để ghi lại API của thư viện.
    • Cuối cùng, các tài liệu sẽ đưa vào một công cụ tài liệu, nhưng công việc quan trọng là viết văn bản giải thích API một cách chính xác và đầy đủ cho người khác. Việc điền vào nó một lúc dễ dàng hơn tất cả cùng một lúc, và nó sẽ trở nên tốt hơn nhiều bằng cách viết các bản nháp thô và quay lại sau khi giải thích và ví dụ tốt hơn.
    • Nếu bạn thấy một số phần của API khó ghi lại, hãy hỏi xem phần đó của API có chỗ để cải thiện không. Nó có thể đơn giản hơn? Thường xuyên hơn? Có quá chung chung không? Quá chuyên ngành? Nó có thể sử dụng tên quen thuộc hơn?
    • Các tài liệu có thể ghi lại các loại đối số bằng cách sử dụng các nhận xét có cấu trúc mà các công cụ có thể kiểm tra. Tôi vẫn chưa tìm thấy tài liệu thực sự về điều đó, nhưng IDE PyCharm sẽ giúp xây dựng các tài liệu đó và sẽ ngay lập tức kiểm tra các loại đối số trong khi chỉnh sửa các cuộc gọi phương thức.
    • Nói về điều này, PyCharm là một công cụ tuyệt vời để tiết kiệm thời gian của nhà phát triển và cải thiện chất lượng mã. Nó sẽ chạy "kiểm tra" để kiểm tra mã trong khi bạn chỉnh sửa mã, ví dụ: kiểm tra các loại khi có thể, kiểm tra nhập khẩu bị thiếu và không sử dụng, phương thức trùng lặp, lỗi kiểu PEP 8, v.v.
  • Bắt đầu viết bài kiểm tra đơn vị bằng cách sử dụng pytest. Rất lâu trước khi bạn phát hành, các bài kiểm tra đơn vị sẽ trả hết trong sự phát triển của chính bạn bằng cách tìm ra các lỗi trong các trường hợp góc và đảm bảo rằng các thay đổi mã không phá vỡ mọi thứ. Một lần nữa, bạn có thể xây dựng điều này theo thời gian. Nó khá dễ dàng để bắt đầu.
  • Hãy xem qua các thư viện mã nguồn mở hiện có (có cùng kích thước) trên GitHub để xem cách chúng tổ chức các tệp và bản phát hành. Xem cách họ thực hiện theo dõi lỗi / vấn đề và kéo yêu cầu. Đóng góp cho một hoặc nhiều người trong số họ để có kinh nghiệm với các quy trình tổ chức dự án nhiều người này nếu bạn không có kinh nghiệm ở đó. GitHub có các công cụ tốt cho các quy trình này. Nó thực hiện những điều tốt đẹp với README.mdcác tệp tài liệu ở cấp cao nhất và trong bất kỳ thư mục nào, và với tệp giấy phép.
  • Cân nhắc việc tranh thủ một cộng tác viên để nhận phản hồi về thư viện, API và tài liệu của nó.
    • Khi bạn phát hành, sẽ có một hoặc nhiều cộng tác viên sửa lỗi khi bạn đi nghỉ, để giúp trả lời các câu hỏi của người dùng và trong khi đó bắt đầu thực hiện Yêu cầu kéo với đánh giá mã, để phân chia các nhiệm vụ phát hành thư viện, và mang lại kinh nghiệm bổ sung với quản lý dự án và thiết kế thư viện.
  • Cho đến nay bạn đã làm một lịch sử cam kết git tuyến tính. Cuối cùng, sẽ rất hữu ích khi sử dụng "các nhánh phát hành" cho các sửa lỗi và thay đổi cụ thể, "các nhánh phát hành" để chạy theo kiểm soát và "các nhánh phát triển" cho bất kỳ công việc nào của nhiều người trong tiến trình chưa sẵn sàng để hợp nhất vào nhánh chủ. Vì vậy, hãy dành ra một hoặc hai ngày trên đường để tìm hiểu về điều này và bắt đầu thực hành với nó trước khi bạn cần phải dựa vào những kỹ năng git đó. git rất linh hoạt và hữu ích nhưng giao diện người dùng có thể gặp nhiều khó khăn .
    • Một nơi để đọc về các nhánh git và công dụng của chúng là trong sách Pro Git . Trong số nhiều cách để sử dụng các nhánh, hãy bắt đầu chỉ bằng "phát hành nhánh".
    • Ứng dụng GitHub Desktop là một công cụ tuyệt vời để quản lý các chi nhánh. Nó cũng tuyệt vời để thực hiện các cam kết vì nó giúp dễ dàng viết thông điệp cam kết trong khi xem xét tất cả các thay đổi.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.