Skip to content

Commit

Permalink
improvement(core): align commit messages
Browse files Browse the repository at this point in the history
fix #2152
  • Loading branch information
lorenzo-cavazzi committed Jul 29, 2021
1 parent 2bfc4a8 commit 8f1d5d2
Show file tree
Hide file tree
Showing 14 changed files with 40 additions and 110 deletions.
10 changes: 2 additions & 8 deletions renku/core/commands/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,15 +540,9 @@ def _create_from_template_local(
ref=None,
invoked_from=None,
initial_branch=None,
commit_message=None,
):
"""Initialize a new project from a template.
It creates a custom commit message and accepts custom user data.
"""
command = "renku init" f' -n "{name}"' f' -s "{source}"' f' -r "{ref}"' f' -t "{template_path.name}"'
parameters = "".join([f' -p "{key}"="{value}"' for key, value in metadata.items()])
prefix = f"{invoked_from}: " if invoked_from else ""
commit_message = f"{prefix}{command}{parameters}"
"""Initialize a new project from a template."""

metadata = {**default_metadata, **metadata}

Expand Down
1 change: 1 addition & 0 deletions renku/service/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,4 @@
OIDC_URL = os.getenv("OIDC_URL", "/auth/realms/Renku/.well-known/openid-configuration")

LOGGER_CONFIG_FILE = Path(pkg_resources.resource_filename("renku", "service/logging.yaml"))
MESSAGE_PREFIX = os.environ.get("RENKU_DOMAIN", "service") + ":"
5 changes: 3 additions & 2 deletions renku/service/controllers/cache_migrate_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,14 @@
"""Renku service migrate project controller."""
from renku.core.utils.contexts import click_context
from renku.service.cache.models.job import Job
from renku.service.config import PROJECT_CLONE_NO_DEPTH
from renku.service.config import MESSAGE_PREFIX, PROJECT_CLONE_NO_DEPTH
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.logger import worker_log
from renku.service.serializers.cache import ProjectMigrateRequest, ProjectMigrateResponseRPC
from renku.service.utils.callback import ServiceCallback
from renku.service.views import result_response
from renku.version import __version__


def execute_migration(
Expand Down Expand Up @@ -71,7 +72,7 @@ def __init__(self, cache, user_data, request_data, migrate_project=False, skip_l
self.skip_template_update = self.ctx.get("skip_template_update", False)
self.skip_docker_update = self.ctx.get("skip_docker_update", False)
self.skip_migrations = self.ctx.get("skip_migrations", False)
self.commit_message = self.ctx.get("commit_message", None)
self.commit_message = "{0} migrate to latest version for renku {1}".format(MESSAGE_PREFIX, __version__)

super(MigrateProjectCtrl, self).__init__(
cache,
Expand Down
3 changes: 3 additions & 0 deletions renku/service/controllers/config_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"""Renku service cache list cached projects controller."""
from renku.core.commands.config import update_multiple_config
from renku.service.cache.models.job import Job
from renku.service.config import MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.serializers.config import ConfigSetRequest, ConfigSetResponseRPC
Expand All @@ -33,6 +34,8 @@ class SetConfigCtrl(ServiceCtrl, RenkuOpSyncMixin):
def __init__(self, cache, user_data, request_data, migrate_project=False):
"""Construct controller."""
self.ctx = SetConfigCtrl.REQUEST_SERIALIZER.load(request_data)
self.commit_message = "{0} config set {1}".format(MESSAGE_PREFIX, ", ".join(request_data["config"].keys()))

super(SetConfigCtrl, self).__init__(cache, user_data, request_data, migrate_project=migrate_project)

@property
Expand Down
5 changes: 2 additions & 3 deletions renku/service/controllers/datasets_add_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from renku.core.commands.dataset import add_to_dataset
from renku.core.errors import RenkuException
from renku.service.cache.models.job import Job
from renku.service.config import MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.jobs.contexts import enqueue_retry
Expand All @@ -41,9 +42,7 @@ class DatasetsAddFileCtrl(ServiceCtrl, RenkuOpSyncMixin):
def __init__(self, cache, user_data, request_data, migrate_project=False):
"""Construct a datasets add controller."""
self.ctx = DatasetsAddFileCtrl.REQUEST_SERIALIZER.load(request_data)

if not self.ctx["commit_message"]:
self.ctx["commit_message"] = "service: dataset add {0}".format(self.ctx["name"])
self.ctx["commit_message"] = "{0} dataset add {1}".format(MESSAGE_PREFIX, self.ctx["name"])

super(DatasetsAddFileCtrl, self).__init__(cache, user_data, request_data, migrate_project=migrate_project)

Expand Down
6 changes: 2 additions & 4 deletions renku/service/controllers/datasets_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"""Renku service datasets create controller."""
from renku.core.commands.dataset import create_dataset
from renku.service.cache.models.job import Job
from renku.service.config import CACHE_UPLOADS_PATH
from renku.service.config import CACHE_UPLOADS_PATH, MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.serializers.datasets import DatasetCreateRequest, DatasetCreateResponseRPC
Expand All @@ -34,9 +34,7 @@ class DatasetsCreateCtrl(ServiceCtrl, RenkuOpSyncMixin):
def __init__(self, cache, user_data, request_data, migrate_project=False):
"""Construct a datasets create controller."""
self.ctx = DatasetsCreateCtrl.REQUEST_SERIALIZER.load(request_data)

if self.ctx.get("commit_message") is None:
self.ctx["commit_message"] = "service: dataset create {0}".format(self.ctx["name"])
self.ctx["commit_message"] = "{0} dataset create {1}".format(MESSAGE_PREFIX, self.ctx["name"])

super(DatasetsCreateCtrl, self).__init__(cache, user_data, request_data, migrate_project)

Expand Down
6 changes: 2 additions & 4 deletions renku/service/controllers/datasets_edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"""Renku service datasets edit controller."""
from renku.core.commands.dataset import edit_dataset
from renku.service.cache.models.job import Job
from renku.service.config import CACHE_UPLOADS_PATH
from renku.service.config import CACHE_UPLOADS_PATH, MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.serializers.datasets import DatasetEditRequest, DatasetEditResponseRPC
Expand All @@ -34,9 +34,7 @@ class DatasetsEditCtrl(ServiceCtrl, RenkuOpSyncMixin):
def __init__(self, cache, user_data, request_data, migrate_project=False):
"""Construct a datasets edit list controller."""
self.ctx = DatasetsEditCtrl.REQUEST_SERIALIZER.load(request_data)

if self.ctx.get("commit_message") is None:
self.ctx["commit_message"] = "service: dataset edit {0}".format(self.ctx["name"])
self.ctx["commit_message"] = "{0} dataset edit {1}".format(MESSAGE_PREFIX, self.ctx["name"])

super(DatasetsEditCtrl, self).__init__(cache, user_data, request_data, migrate_project=migrate_project)

Expand Down
5 changes: 2 additions & 3 deletions renku/service/controllers/datasets_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"""Renku service datasets import controller."""
import os

from renku.service.config import MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.jobs.contexts import enqueue_retry
Expand All @@ -36,9 +37,7 @@ class DatasetsImportCtrl(ServiceCtrl, RenkuOpSyncMixin):
def __init__(self, cache, user_data, request_data, migrate_project=False):
"""Construct a datasets import controller."""
self.ctx = DatasetsImportCtrl.REQUEST_SERIALIZER.load(request_data)

if self.ctx.get("commit_message") is None:
self.ctx["commit_message"] = "service: dataset import of {0}".format(self.ctx["dataset_uri"])
self.ctx["commit_message"] = "{0} dataset import of {1}".format(MESSAGE_PREFIX, self.ctx["dataset_uri"])

super(DatasetsImportCtrl, self).__init__(cache, user_data, request_data, migrate_project=migrate_project)

Expand Down
5 changes: 2 additions & 3 deletions renku/service/controllers/datasets_remove.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"""Renku service datasets remove controller."""
from renku.core.commands.dataset import remove_dataset
from renku.service.cache.models.job import Job
from renku.service.config import MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.serializers.datasets import DatasetRemoveRequest, DatasetRemoveResponseRPC
Expand All @@ -33,9 +34,7 @@ class DatasetsRemoveCtrl(ServiceCtrl, RenkuOpSyncMixin):
def __init__(self, cache, user_data, request_data, migrate_project=False):
"""Construct a datasets remove controller."""
self.ctx = DatasetsRemoveCtrl.REQUEST_SERIALIZER.load(request_data)

if self.ctx.get("commit_message") is None:
self.ctx["commit_message"] = "service: dataset remove {0}".format(self.ctx["name"])
self.ctx["commit_message"] = "{0} dataset remove {1}".format(MESSAGE_PREFIX, self.ctx["name"])

super(DatasetsRemoveCtrl, self).__init__(cache, user_data, request_data, migrate_project=migrate_project)

Expand Down
17 changes: 8 additions & 9 deletions renku/service/controllers/datasets_unlink.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"""Renku service datasets unlink controller."""
from renku.core.commands.dataset import file_unlink
from renku.service.cache.models.job import Job
from renku.service.config import MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOpSyncMixin
from renku.service.serializers.datasets import DatasetUnlinkRequest, DatasetUnlinkResponseRPC
Expand All @@ -37,15 +38,13 @@ def __init__(self, cache, user_data, request_data, migrate_project=False):
self.include = self.ctx.get("include_filter")
self.exclude = self.ctx.get("exclude_filter")

if self.ctx.get("commit_message") is None:
if self.include and self.exclude:
filters = "-I {0} -X {1}".format(self.include, self.exclude)
elif not self.include and self.exclude:
filters = "-X {0}".format(self.exclude)
else:
filters = "-I {0}".format(self.include)

self.ctx["commit_message"] = "service: unlink dataset {0} {1}".format(self.ctx["name"], filters)
if self.include and self.exclude:
filters = "-I {0} -X {1}".format(self.include, self.exclude)
elif not self.include and self.exclude:
filters = "-X {0}".format(self.exclude)
else:
filters = "-I {0}".format(self.include)
self.ctx["commit_message"] = "{0} unlink dataset {1} {2}".format(MESSAGE_PREFIX, self.ctx["name"], filters)

super(DatasetsUnlinkCtrl, self).__init__(cache, user_data, request_data, migrate_project=migrate_project)

Expand Down
3 changes: 3 additions & 0 deletions renku/service/controllers/templates_create_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from renku.core.commands.init import create_from_template_local_command, read_template_manifest
from renku.core.errors import RenkuException
from renku.core.utils.contexts import click_context
from renku.service.config import MESSAGE_PREFIX
from renku.service.controllers.api.abstract import ServiceCtrl
from renku.service.controllers.api.mixins import RenkuOperationMixin
from renku.service.controllers.utils.project_clone import user_project_clone
Expand All @@ -42,6 +43,7 @@ class TemplatesCreateProjectCtrl(ServiceCtrl, RenkuOperationMixin):
def __init__(self, cache, user_data, request_data):
"""Construct a templates read manifest controller."""
self.ctx = TemplatesCreateProjectCtrl.REQUEST_SERIALIZER.load({**user_data, **request_data}, unknown=EXCLUDE)
self.ctx["commit_message"] = "{0} init {1}".format(MESSAGE_PREFIX, self.ctx["project_name"])
super(TemplatesCreateProjectCtrl, self).__init__(cache, user_data, request_data)

self.template = None
Expand Down Expand Up @@ -150,6 +152,7 @@ def new_project(self):
ref=self.ctx["ref"],
invoked_from="service",
initial_branch=self.ctx["initial_branch"],
commit_message=self.ctx["commit_message"],
)

self.new_project_push(new_project_path)
Expand Down
9 changes: 3 additions & 6 deletions renku/service/serializers/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
from renku.service.serializers.common import (
ArchiveSchema,
AsyncSchema,
CommitSchema,
FileDetailsSchema,
LocalRepositorySchema,
RemoteRepositorySchema,
Expand Down Expand Up @@ -192,7 +191,7 @@ class ProjectListResponseRPC(JsonRPCResponse):
result = fields.Nested(ProjectListResponse)


class ProjectMigrateRequest(AsyncSchema, CommitSchema, LocalRepositorySchema, RemoteRepositorySchema):
class ProjectMigrateRequest(AsyncSchema, LocalRepositorySchema, RemoteRepositorySchema):
"""Request schema for project migrate."""

force_template_update = fields.Boolean(default=False)
Expand All @@ -201,10 +200,8 @@ class ProjectMigrateRequest(AsyncSchema, CommitSchema, LocalRepositorySchema, Re
skip_migrations = fields.Boolean(default=False)

@pre_load()
def default_commit_message(self, data, **kwargs):
"""Set default commit message."""
if not data.get("commit_message"):
data["commit_message"] = "service: renku migrate"
def handle_ref(self, data, **kwargs):
"""Handle ref and branch."""

# Backward compatibility: branch and ref were both used. Let's keep branch as the exposed field
# even if interally it gets converted to "ref" later.
Expand Down
6 changes: 0 additions & 6 deletions renku/service/serializers/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,6 @@ def validate_git_url(self, value):
return value


class CommitSchema(Schema):
"""Schema for specifying a commit message."""

commit_message = fields.String(description="Commit message to use for the commit.")


class AsyncSchema(Schema):
"""Schema for adding a commit at the end of the operation."""

Expand Down
69 changes: 7 additions & 62 deletions renku/service/serializers/datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
"""Renku service datasets serializers."""
from marshmallow import Schema, ValidationError, fields, post_load, pre_load
from marshmallow import Schema, ValidationError, fields, post_load

from renku.core.models.dataset import DatasetCreatorsJson as DatasetCreators
from renku.core.models.dataset import DatasetDetailsJson as DatasetDetails
from renku.core.models.dataset import ImageObjectJson as ImageObject
from renku.core.models.dataset import ImageObjectRequestJson as ImageObjectRequest
from renku.service.serializers.common import (
AsyncSchema,
CommitSchema,
JobDetailsResponse,
LocalRepositorySchema,
MigrateSchema,
Expand Down Expand Up @@ -53,24 +52,10 @@ class DatasetDetailsRequest(DatasetDetails):


class DatasetCreateRequest(
AsyncSchema,
CommitSchema,
DatasetDetailsRequest,
DatasetRefSchema,
LocalRepositorySchema,
RemoteRepositorySchema,
MigrateSchema,
AsyncSchema, DatasetDetailsRequest, DatasetRefSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema
):
"""Request schema for a dataset create view."""

@pre_load()
def default_commit_message(self, data, **kwargs):
"""Set default commit message."""
if not data.get("commit_message"):
data["commit_message"] = "service: dataset create {0}".format(data["name"])

return data


class DatasetCreateResponse(DatasetNameSchema, RenkuSyncSchema):
"""Response schema for a dataset create view."""
Expand All @@ -83,24 +68,10 @@ class DatasetCreateResponseRPC(JsonRPCResponse):


class DatasetRemoveRequest(
AsyncSchema,
CommitSchema,
DatasetNameSchema,
DatasetRefSchema,
LocalRepositorySchema,
RemoteRepositorySchema,
MigrateSchema,
AsyncSchema, DatasetNameSchema, DatasetRefSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema
):
"""Request schema for a dataset remove."""

@pre_load()
def default_commit_message(self, data, **kwargs):
"""Set default commit message."""
if not data.get("commit_message"):
data["commit_message"] = "service: dataset remove {0}".format(data["name"])

return data


class DatasetRemoveResponse(DatasetNameSchema, RenkuSyncSchema):
"""Response schema for a dataset create view."""
Expand All @@ -122,13 +93,7 @@ class DatasetAddFile(Schema):


class DatasetAddRequest(
AsyncSchema,
CommitSchema,
DatasetNameSchema,
DatasetRefSchema,
LocalRepositorySchema,
RemoteRepositorySchema,
MigrateSchema,
AsyncSchema, DatasetNameSchema, DatasetRefSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema
):
"""Request schema for a dataset add file view."""

Expand All @@ -139,14 +104,6 @@ class DatasetAddRequest(

client_extras = fields.String()

@post_load()
def default_commit_message(self, data, **kwargs):
"""Set default commit message."""
if not data.get("commit_message"):
data["commit_message"] = "service: dataset add {0}".format(data["name"])

return data

@post_load()
def check_files(self, data, **kwargs):
"""Check serialized file list."""
Expand Down Expand Up @@ -216,7 +173,7 @@ class DatasetFilesListResponseRPC(JsonRPCResponse):
result = fields.Nested(DatasetFilesListResponse)


class DatasetImportRequest(AsyncSchema, CommitSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema):
class DatasetImportRequest(AsyncSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema):
"""Dataset import request."""

dataset_uri = fields.String(required=True)
Expand All @@ -231,13 +188,7 @@ class DatasetImportResponseRPC(JsonRPCResponse):


class DatasetEditRequest(
AsyncSchema,
CommitSchema,
DatasetNameSchema,
DatasetRefSchema,
LocalRepositorySchema,
RemoteRepositorySchema,
MigrateSchema,
AsyncSchema, DatasetNameSchema, DatasetRefSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema
):
"""Dataset edit metadata request."""

Expand All @@ -262,13 +213,7 @@ class DatasetEditResponseRPC(JsonRPCResponse):


class DatasetUnlinkRequest(
AsyncSchema,
CommitSchema,
DatasetNameSchema,
DatasetRefSchema,
LocalRepositorySchema,
RemoteRepositorySchema,
MigrateSchema,
AsyncSchema, DatasetNameSchema, DatasetRefSchema, LocalRepositorySchema, RemoteRepositorySchema, MigrateSchema
):
"""Dataset unlink file request."""

Expand Down

0 comments on commit 8f1d5d2

Please sign in to comment.