Skip to content

Commit 726ce7e

Browse files
committed
a litle rephase of begin of pinning dependecies article
1 parent fbbb8ff commit 726ce7e

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

docs/blog/posts/pinning_dependecies.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
date: 2023-09-29
2+
date: 2024-10-25
33
categories:
44
- GitHub
55
- Testing
@@ -13,11 +13,18 @@ draft: true
1313

1414
# Pinning Test Dependencies
1515

16+
This note is about pinning CI dependencies for better CI stability. It is based on work done in the [napari](https://github.com/napari/napari) project
17+
18+
<!-- more -->
19+
1620
## Motivation
1721

1822
### Guaranteeing test stability
1923

20-
As one of the principal developers of the [napari](https://github.com/napari/napari) project, it is noteworthy to mention that at the time of writing, this project encompasses 36 direct dependencies and 116 total dependencies for minimum operational capability. In terms of testing, it utilizes 165 dependencies in total, while the assembly of documents requires up to 191 dependencies.
24+
I'm one of core developer of [napari](https://github.com/napari/napari) project. This Project has 35 direct dependencies and 116 total dependencies for minimum operational capability. For testing, it uses 188 dependencies in total, and for documentation assembly, it uses up to 224 dependencies. With such massive dependency chains, it's not uncommon for us to encounter broken tests due to updates in the dependencies.
25+
26+
As open-source projects, we rely on the maintainers of these dependencies to ensure that their libraries are backward compatible. But we also understand that maintaining backward compatibility can be challenging, and sometimes backward incompatible changes are introduced by mistake.
27+
2128

2229
Given the substantial volume of these dependencies, there are instances where the maintainers of other libraries might unintentionally disrupt certain API in their packages during updates. These occasional or unintentional disruptions can cause unforeseen complications. On the other hand, there are times when such breakages are deliberate. Providing a backward compatibility layer can be tricky in these situations. Balancing the maintenance of deprecated APIs with both reasonable time constraints and performance requirements often proves unfeasible in the long run. These factors illuminated the need for us to commence pinning our test dependencies.
2330

0 commit comments

Comments
 (0)