[Flutter] pubspec.lock을 git에 올려야 할까? (pubspec.lock이란?)

YJ KIM·2025년 3월 12일
0
post-thumbnail

오랜만에 플러터를 하려고 하니까 잊은 것들이 너무 많아서, 잊은 게 나올 때마다 짤막하게 글을 쓰려고 한다!


결과만 알고 싶은 분들에게 -> 추가해야 합니다. 추가하시길... (앱이 아니라 dart 기반의 라이브러리를 개발하면 추가하면 안됩니다.)

우리가 플러터로 개발을 하면 라이브러리를 종속성에 추가해서 사용하는 상황이 매우 많다. 보통

pub get으로 가져오거나, pubspec.yaml에 dependency를 기재해준다.
어차피 pubspec.yaml에 적어주면 자동으로 pub get으로 가져오기 때문에 어차피 거기서 거기이다.

Semantic Versioning

dependencies:
  flutter:
    sdk: flutter
  flutter_dotenv: ^5.1.0

이런 식으로 의존성을 semantic하게 추가할 수 있다.
우리가 이렇게 의존성을 추가를 하면 버전을 기재해야 하는데, 이때 버전 규칙이 있다.

보통 버전 네이밍 규칙이,
1️⃣.2️⃣.3️⃣ 이런 식으로 되어 있다. 위에서도 5.1.0 버전을 사용하겠다고 기재하고 있다.

이때 첫1️⃣, 중2️⃣, 말3️⃣을 나눠서 보면

1️⃣: major, 큰 변화로 인해서 이전 버전과 호환이 되지 않는 경우
2️⃣: minor, 새로운 기능을 추가해서, 이전 버전과 호환이 되는 경우
3️⃣: patch, 버그를 수정하거나 미세한 변화가 있어서 이전 버전과 호환이 되는 경우

이렇게 나뉠 수 있다. 이를 Semantic versioning이라 한다.

Version Range

위에서 버전을 기재할 때,

flutter_dotenv: ^5.1.0

위와 같이 표시했다. 이때 ^가 무슨 의미일까?

~: 현재 버전에서 major, minor은 같고 patch가 현재 patch보다 같거나 큰 경우 모두 호환된다.
^: 현재 버전에서 major은 같고, minor와 patch가 현재보다 같거나 큰 경우 호환된다.
none: 아무 것도 없는 경우로 딱 그 버전만 가능하다. 호환 불가능하다.

pubspec.lock

협업을 하는 경우, 서로 다른 버전의 라이브러리를 쓴다면, 라이브러리의 버전에 따라 문제가 생길 수도 있고 버전 종속성으로 인해 라이브러리 버전이 꼬일 수 있다.

이를 방지하기 위해 flutter 에서는 pubspec.lock에 최적의 버전을 명명하고, 협업 시에 pubspec.lock에 기재된 버전의 라이브러리를 가져온다!

git에 업로드 해야할까?

위에서 협업 시에 버전을 맞추기 위해 pubspec.lock을 사용한다고 했다. 당연히 협업 시에는 git 업로드를 해야 서로 버전을 맞출 수 있다.

만일 dart 기반의 라이브러리를 개발하는 경우에는, pubspec.lock을 올리면 안된다. (https://dart.dev/tools/pub/private-files#pubspeclock 공식문서 확인 필요!)

For regular packages, don't commit the pubspec.lock file. Regenerating the pubspec.lock file lets you test your package against the latest compatible versions of its dependencies.

라이브러리 호환 버전 테스트가 어려워서 안 된다고 한다.

References

https://medium.com/codingmountain-blog/what-is-pubspec-lock-and-why-should-flutter-devs-care-86ab4d0b47fc

https://stackoverflow.com/questions/16136739/in-dart-and-pub-should-i-add-pubspec-lock-to-my-gitignore

https://dart.dev/tools/pub/private-files#pubspeclock

profile
모르면 쓰지 말고 쓸 거면 알고 쓰자

0개의 댓글