Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default category to main for poetry #1211

Merged
merged 9 commits into from
Jun 14, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Default category to main for poetry
  • Loading branch information
jssblck committed Jun 1, 2023
commit c0cc26b5789e3650c36cf26361d4cf0d08667907
15 changes: 11 additions & 4 deletions src/Strategy/Python/Poetry/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,14 @@ toMap pkgs = Map.fromList $ (\x -> (canonicalPkgName x, toDependency x)) <$> (fi

toDepEnvironment :: PoetryLockPackage -> DepEnvironment
toDepEnvironment pkg = case poetryLockPackageCategory pkg of
"dev" -> EnvDevelopment
"main" -> EnvProduction
"test" -> EnvTesting
other -> EnvOther other
Just category -> case category of
"dev" -> EnvDevelopment
"main" -> EnvProduction
"test" -> EnvTesting
other -> EnvOther other
Nothing -> defaultDepEnvironment

defaultDepEnvironment :: DepEnvironment
-- Poetry made this field optional. When not present, it defaults to `main`, which maps to `EnvProduction`.
-- https://github.com/python-poetry/poetry/pull/7637
defaultDepEnvironment = EnvProduction
53 changes: 35 additions & 18 deletions src/Strategy/Python/Poetry/PoetryLock.hs
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@ newtype PackageName = PackageName {unPackageName :: Text} deriving (Eq, Ord, Sho
poetryLockCodec :: TomlCodec PoetryLock
poetryLockCodec =
PoetryLock
<$> Toml.list poetryLockPackageCodec "package" .= poetryLockPackages
<*> Toml.table poetryMetadataCodec "metadata" .= poetryLockMetadata
<$> Toml.list poetryLockPackageCodec "package"
.= poetryLockPackages
<*> Toml.table poetryMetadataCodec "metadata"
.= poetryLockMetadata

-- | Metadata of poetry lock file.
data PoetryMetadata = PoetryMetadata
Expand All @@ -43,9 +45,12 @@ data PoetryMetadata = PoetryMetadata
poetryMetadataCodec :: TomlCodec PoetryMetadata
poetryMetadataCodec =
PoetryMetadata
<$> Toml.text "lock-version" .= poetryMetadataLockVersion
<*> Toml.text "content-hash" .= poetryMetadataContentHash
<*> Toml.text "python-versions" .= poetryMetadataPythonVersions
<$> Toml.text "lock-version"
.= poetryMetadataLockVersion
<*> Toml.text "content-hash"
.= poetryMetadataContentHash
<*> Toml.text "python-versions"
.= poetryMetadataPythonVersions

-- | A PoetryLockPackageSource represents [package.source] field in poetry.lock.
-- Source indicates from where the package was retrieved.
Expand All @@ -61,7 +66,7 @@ data PoetryLockPackageSource = PoetryLockPackageSource
data PoetryLockPackage = PoetryLockPackage
{ poetryLockPackageName :: PackageName
, poetryLockPackageVersion :: Text
, poetryLockPackageCategory :: Text
, poetryLockPackageCategory :: Maybe Text
, poetryLockPackageOptional :: Bool
, poetryLockPackagePythonVersions :: Text
, poetryLockPackageDependencies :: Map Text PoetryLockDependencySpec
Expand All @@ -72,21 +77,32 @@ data PoetryLockPackage = PoetryLockPackage
poetryLockPackageCodec :: TomlCodec PoetryLockPackage
poetryLockPackageCodec =
PoetryLockPackage
<$> Toml.diwrap (Toml.text "name") .= poetryLockPackageName
<*> Toml.text "version" .= poetryLockPackageVersion
<*> Toml.text "category" .= poetryLockPackageCategory
<*> Toml.bool "optional" .= poetryLockPackageOptional
<*> Toml.text "python-versions" .= poetryLockPackagePythonVersions
<*> Toml.tableMap Toml._KeyText poetryLockPackagePoetryLockDependencySpecCodec "dependencies" .= poetryLockPackageDependencies
<*> Toml.dioptional (Toml.table poetryLockPackageSourceCodec "source") .= poetryLockPackageSource
<$> Toml.diwrap (Toml.text "name")
.= poetryLockPackageName
<*> Toml.text "version"
.= poetryLockPackageVersion
<*> Toml.dioptional (Toml.text "category")
.= poetryLockPackageCategory
<*> Toml.bool "optional"
.= poetryLockPackageOptional
<*> Toml.text "python-versions"
.= poetryLockPackagePythonVersions
<*> Toml.tableMap Toml._KeyText poetryLockPackagePoetryLockDependencySpecCodec "dependencies"
.= poetryLockPackageDependencies
<*> Toml.dioptional (Toml.table poetryLockPackageSourceCodec "source")
.= poetryLockPackageSource

poetryLockPackageSourceCodec :: TomlCodec PoetryLockPackageSource
poetryLockPackageSourceCodec =
PoetryLockPackageSource
<$> Toml.text "type" .= poetryLockPackageSourceType
<*> Toml.text "url" .= poetryLockPackageSourceUrl
<*> Toml.dioptional (Toml.text "reference") .= poetryLockPackageSourceReference
<*> Toml.dioptional (Toml.text "resolved_reference") .= poetryLockPackageSourceResolvedReference
<$> Toml.text "type"
.= poetryLockPackageSourceType
<*> Toml.text "url"
.= poetryLockPackageSourceUrl
<*> Toml.dioptional (Toml.text "reference")
.= poetryLockPackageSourceReference
<*> Toml.dioptional (Toml.text "resolved_reference")
.= poetryLockPackageSourceResolvedReference

data PoetryLockDependencySpec
= TextVersion Text
Expand All @@ -102,7 +118,8 @@ newtype ObjectVersion = ObjectVersion
objectVersionCodec :: TomlCodec ObjectVersion
objectVersionCodec =
ObjectVersion
<$> Toml.text "version" .= unObjectVersion
<$> Toml.text "version"
.= unObjectVersion

matchTextVersion :: PoetryLockDependencySpec -> Maybe Text
matchTextVersion (TextVersion version) = Just version
Expand Down
12 changes: 6 additions & 6 deletions test/Python/Poetry/CommonSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ notSupportedPoetryLockDependency =
PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgSourcedFromFile"
, poetryLockPackageVersion = "1.1.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand Down Expand Up @@ -182,7 +182,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgOne"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies =
Map.fromList
Expand Down Expand Up @@ -214,7 +214,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgWithGitSource"
, poetryLockPackageVersion = "5.22.0.post0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -241,7 +241,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgSourcedFromUrl"
, poetryLockPackageVersion = "3.92.1"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -268,7 +268,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgSourcedFromFile"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -283,7 +283,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "myprivatepkg"
, poetryLockPackageVersion = "0.0.1"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = ">=3.6"
Expand Down
16 changes: 8 additions & 8 deletions test/Python/Poetry/PoetryLockSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ expectedPoetryLock =
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgWithGitSource"
, poetryLockPackageVersion = "5.22.0.post0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -51,7 +51,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgSourcedFromFile"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -67,7 +67,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgSourcedFromUrl"
, poetryLockPackageVersion = "3.92.1"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -83,7 +83,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgOne"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies =
Map.fromList
Expand All @@ -103,7 +103,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgOneChildofOne"
, poetryLockPackageVersion = "11.4"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -112,7 +112,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgTwoChildofOne"
, poetryLockPackageVersion = "5.4"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -121,7 +121,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgThreeChildofOne"
, poetryLockPackageVersion = "1.6.1"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -130,7 +130,7 @@ expectedPoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "myprivatepkg"
, poetryLockPackageVersion = "0.0.1"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = ">=3.6"
Expand Down
10 changes: 5 additions & 5 deletions test/Python/PoetrySpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ candidatePoetryLock =
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "flow_pipes"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.fromList [("flow_pipes_gravity", TextVersion "^1.1")]
, poetryLockPackagePythonVersions = "*"
Expand All @@ -43,7 +43,7 @@ candidatePoetryLock =
, PoetryLockPackage
{ poetryLockPackageName = PackageName "flow_pipes_gravity"
, poetryLockPackageVersion = "1.1.1"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand Down Expand Up @@ -81,7 +81,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "somePkg"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand All @@ -97,7 +97,7 @@ spec = do
[ PoetryLockPackage
{ poetryLockPackageName = PackageName "somePkg"
, poetryLockPackageVersion = "1.21.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.fromList [("pkgOneChildOne", TextVersion "*")]
, poetryLockPackagePythonVersions = "*"
Expand All @@ -106,7 +106,7 @@ spec = do
, PoetryLockPackage
{ poetryLockPackageName = PackageName "pkgOneChildOne"
, poetryLockPackageVersion = "1.22.0"
, poetryLockPackageCategory = "main"
, poetryLockPackageCategory = Just "main"
, poetryLockPackageOptional = False
, poetryLockPackageDependencies = Map.empty
, poetryLockPackagePythonVersions = "*"
Expand Down