@@ -944,3 +944,94 @@ name: "double"
944
944
### opam pin -n double
945
945
[NOTE] Package double does not exist in opam repositories registered in the current switch.
946
946
double is now pinned to file://${BASEDIR}/double (version dev)
947
+ ### :C:c: pin depends and unpin dependency
948
+ ### opam switch create pin-depends --empty
949
+ ### <pin:dep1/dep1.opam>
950
+ opam-version: "2.0"
951
+ depends: [ "dep2" "dep3"]
952
+ ### <add-pin-depends.sh>
953
+ basedir=`echo "$BASEDIR" | sed "s/\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/g"`
954
+ cat >> dep1/dep1.opam << EOF
955
+ pin-depends: [
956
+ [ "dep2.2" "file://$basedir/dep2" ]
957
+ [ "dep3.2" "file://$basedir/dep3" ]
958
+ ]
959
+ EOF
960
+ ### sh add-pin-depends.sh
961
+ ### <pkg:dep2.1>
962
+ opam-version: "2.0"
963
+ ### <pin:dep2/dep2.opam>
964
+ opam-version: "2.0"
965
+ ### <pin:dep3/dep3.opam>
966
+ opam-version: "2.0"
967
+ ### <pin:other/other.opam>
968
+ opam-version: "2.0"
969
+ ### opam pin ./dep1
970
+ [NOTE] Package dep1 does not exist in opam repositories registered in the current switch.
971
+ The following additional pinnings are required by dep1.dev:
972
+ - dep2.2 at file://${BASEDIR}/dep2
973
+ - dep3.2 at file://${BASEDIR}/dep3
974
+ Pin and install them? [Y/n] y
975
+ [dep2.2] synchronised (no changes)
976
+ dep2 is now pinned to file://${BASEDIR}/dep2 (version 2)
977
+ [NOTE] Package dep3 does not exist in opam repositories registered in the current switch.
978
+ [dep3.2] synchronised (no changes)
979
+ dep3 is now pinned to file://${BASEDIR}/dep3 (version 2)
980
+ dep1 is now pinned to file://${BASEDIR}/dep1 (version dev)
981
+
982
+ The following actions will be performed:
983
+ === install 3 packages
984
+ - install dep1 dev (pinned)
985
+ - install dep2 2 (pinned)
986
+ - install dep3 2 (pinned)
987
+
988
+ <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
989
+ -> retrieved dep1.dev (file://${BASEDIR}/dep1)
990
+ -> retrieved dep2.2 (file://${BASEDIR}/dep2)
991
+ -> installed dep2.2
992
+ -> retrieved dep3.2 (file://${BASEDIR}/dep3)
993
+ -> installed dep3.2
994
+ -> installed dep1.dev
995
+ Done.
996
+ ### opam pin -s
997
+ dep1
998
+ dep2
999
+ dep3
1000
+ ### opam unpin dep2
1001
+ Ok, dep2 is no longer pinned to file://${BASEDIR}/dep2 (version 2)
1002
+ The following actions will be performed:
1003
+ === downgrade 1 package
1004
+ - downgrade dep2 2 to 1
1005
+ === recompile 1 package
1006
+ - recompile dep1 dev (pinned) [uses dep2]
1007
+
1008
+ <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
1009
+ -> retrieved dep1.dev (no changes)
1010
+ -> removed dep1.dev
1011
+ -> removed dep2.2
1012
+ -> installed dep2.1
1013
+ -> installed dep1.dev
1014
+ Done.
1015
+ ### opam pin ./dep1
1016
+ [NOTE] Package dep1 is already pinned to file://${BASEDIR}/dep1 (version dev).
1017
+ The following additional pinnings are required by dep1.dev:
1018
+ - dep2.2 at file://${BASEDIR}/dep2
1019
+ Pin and install them? [Y/n] y
1020
+ [dep2.2] synchronised (no changes)
1021
+ dep2 is now pinned to file://${BASEDIR}/dep2 (version 2)
1022
+ dep1 is now pinned to file://${BASEDIR}/dep1 (version dev)
1023
+
1024
+ The following actions will be performed:
1025
+ === recompile 1 package
1026
+ - recompile dep1 dev (pinned)
1027
+ === upgrade 1 package
1028
+ - upgrade dep2 1 to 2 (pinned)
1029
+
1030
+ <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
1031
+ -> retrieved dep1.dev (no changes)
1032
+ -> retrieved dep2.2 (file://${BASEDIR}/dep2)
1033
+ -> removed dep1.dev
1034
+ -> removed dep2.1
1035
+ -> installed dep2.2
1036
+ -> installed dep1.dev
1037
+ Done.
0 commit comments