Skip to content

Commit 03774dd

Browse files
chore: Prepare for publishing to PyPI (#198)
1 parent 3a2946a commit 03774dd

File tree

9 files changed

+63
-15
lines changed

9 files changed

+63
-15
lines changed

.github/workflows/build.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
6+
jobs:
7+
build:
8+
name: Wheel and sdist
9+
runs-on: ubuntu-latest
10+
outputs:
11+
version: ${{ steps.baipp.outputs.package_version }}
12+
steps:
13+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
14+
- uses: hynek/build-and-inspect-python-package@b5076c307dc91924a82ad150cdd1533b444d3310 # v2.12.0
15+
id: baipp
16+
17+
publish:
18+
name: Publish to PyPI
19+
if: startsWith(github.ref, 'refs/tags/')
20+
runs-on: ubuntu-latest
21+
needs: build
22+
environment:
23+
name: pypi
24+
url: https://pypi.org/project/meltanolabs-target-csv${{ needs.build.outputs.version }}
25+
26+
permissions:
27+
contents: write
28+
id-token: write
29+
30+
steps:
31+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
32+
with:
33+
name: Packages
34+
path: dist
35+
- uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # 2.9.0
36+
with:
37+
file: dist/*.whl
38+
tag: ${{ github.ref }}
39+
overwrite: true
40+
file_glob: true
41+
- uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
File renamed without changes.
File renamed without changes.

target_csv/sinks.py renamed to meltanolabs_target_csv/sinks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
import sys
88
import warnings
99
from pathlib import Path
10-
from typing import Any, TYPE_CHECKING
10+
from typing import TYPE_CHECKING, Any
1111

1212
import pytz
1313
from singer_sdk.sinks import BatchSink
1414

15-
from target_csv.serialization import write_batch, write_header
15+
from meltanolabs_target_csv.serialization import write_batch, write_header
1616

1717
if TYPE_CHECKING:
1818
from singer_sdk import Target

target_csv/target.py renamed to meltanolabs_target_csv/target.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
from singer_sdk import typing as th
44
from singer_sdk.target_base import Target
55

6-
from target_csv.sinks import CSVSink
6+
from meltanolabs_target_csv.sinks import CSVSink
77

88

99
class TargetCSV(Target):
1010
"""A Singer target that generates CSV files."""
1111

1212
name = "target-csv"
13+
package_name = "meltanolabs-target-csv"
14+
1315
config_jsonschema = th.PropertiesList(
1416
th.Property(
1517
"output_path",

pyproject.toml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
[tool.poetry]
2-
name = "target-csv"
3-
version = "0.0.1"
2+
name = "meltanolabs-target-csv"
3+
version = "0.0.0"
44
description = "Singer target for CSV, built with the Meltano SDK for Singer Targets."
55
authors = ["Meltano <[email protected]>"]
66
license = "Apache-2.0"
7+
readme = "README.md"
78
keywords = [
89
"CSV",
910
"Singer",
@@ -33,11 +34,16 @@ pytest = "~=8.3"
3334
singer-sdk = { version = "*", extras = ["testing"] }
3435

3536
[tool.poetry.scripts]
36-
target-csv = 'target_csv.target:TargetCSV.cli'
37+
target-csv = 'meltanolabs_target_csv.target:TargetCSV.cli'
3738

3839
[build-system]
39-
requires = ["poetry-core>=1.0.7"]
40-
build-backend = "poetry.core.masonry.api"
40+
requires = ["poetry-core>=2.1.1", "poetry-dynamic-versioning>=1.8.2"]
41+
build-backend = "poetry_dynamic_versioning.backend"
42+
43+
[tool.poetry-dynamic-versioning]
44+
enable = true
45+
vcs = "git"
46+
style = "semver"
4147

4248
[tool.ruff]
4349
line-length = 88

tests/test_core.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22

33
from __future__ import annotations
44

5-
from typing import Any, TYPE_CHECKING
5+
from importlib.resources import files
6+
from typing import TYPE_CHECKING, Any
67

78
from singer_sdk.testing import get_target_test_class
89
from singer_sdk.testing.suites import TestSuite
910
from singer_sdk.testing.templates import TargetFileTestTemplate
1011

11-
from target_csv.target import TargetCSV
12+
from meltanolabs_target_csv.target import TargetCSV
1213

1314
from . import data_files
1415

15-
from importlib.resources import files
16-
1716
if TYPE_CHECKING:
1817
from importlib.abc import Traversable
1918

tests/test_csv.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import pytest
99

10-
from target_csv.serialization import read_csv, write_batch, write_header
10+
from meltanolabs_target_csv.serialization import read_csv, write_batch, write_header
1111

1212
SAMPLE_DATASETS: list[tuple[dict, list[dict[str, Any]]]] = [
1313
(

tests/test_sink.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import pytest
44

5-
from target_csv.sinks import CSVSink
6-
from target_csv.target import TargetCSV
5+
from meltanolabs_target_csv.sinks import CSVSink
6+
from meltanolabs_target_csv.target import TargetCSV
77

88

99
def test_sink_output_file_cwd():

0 commit comments

Comments
 (0)