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

Sync upstream with conflict #187

Merged
merged 56 commits into from
Aug 28, 2024

Conversation

odkhang
Copy link
Collaborator

@odkhang odkhang commented Aug 19, 2024

Description Commit hash
Tab title reflects proposal title in cfp wizard 2327e6a34792c517073a39a7be8abef6c2c233bc
Translations update: Czech and Chinese a333c8e93ed825806260b77fe9d354a239848667
Fix data on event and organiser delete b72ea057c368b164d4e8de5e892b39499061f845
Translations update: Portuguese, new: Vietnamese 340c40d5bbe4c0c35f0b462c40709580970018a5
Don't merge resources into question section 64e72619ce413bbcbbe5b838d0bc8cf690d1c3a8
Code style 424f2192ab1a9ae5038d7bf8577e3883d50fb6ea
Add is_featured filter to submissions API ae1de6d9e111161bf36cd87fa0aae0623c1c8bf3
Fix code style ad085229d7fa3dbd3e498b3289d2f199d6a5b418
Fix locale preference message in wrong language 142392d91735e683689945d2c1705ae8b3dbd8ac
Fix code style b4af541f1eae35855ecea6a5c0aa86ec14fda1ff
Use defusedxml 98e7941b839eb1caece53928b185803cb7d197cd
Remove unnecessary variables and context managers ee469eaf0b959ce40c302c13267469e248afe053
Better use of direct assignments 26947714ad48f35951091079fd771ae40c7ad749
Fix code style bf75f450ea36ea10c5858bec208d7f327761e919
Use correct variable types aa4276d2462974b8246277c66b7dce4e3a2fdb36
Improve variable names 43aef16477ec9cb832ccbe26f440adec6c3d5971
Walrus and other if statement improvements 022e25e32d2df48259a9bdac8da10a2558f1a34d
Shuffle code to better places 35252feb11ec30fd243d663ee053d25b5ea74985
Fix incorrect use of raw strings 598d1ce9fa62f047d1ec945ca3a0a0e8e12698f6
Fix comments 6f4d6f26748b3f1ad71a8f2d59b142ba974ed647
Make imports more consistent 438e34b64ed229bef3ced7fe3cf432cf16a4f7bd
Translations update: French 648a6809c7c04b5c910ea9679f739fdc85afc01a
Sanitize markdown preview 58e9990d4e2c81d1eb9a23f77801efcf5155ac08
Show allowed image formats in help text 742a5cbede22c822c1e488a1d40b2d99d636a31d
Fix missing space in help text b7e47a9348e130696736986ec76d725940ce185b
Remove reference to missing sourcemap 520823ebc8ae66f1ff9e1359fc4453d739f04f26
django settings variable can't start with _ c7ca55b4d509e9f1ce4e2a98c2021687cacd5e26
Remove release notes entry a46b95be233e9d22799083e556171b9f91b7caec
Translations update: French, German cb2f09a507b7612fd3019f2b529e82d840c55770
Update translations 37e6139ec057a216efb7271328367cc2c61f492f
Translations update: German d0bf8f0c9d6d7cd24860d651a56186ab57a0f531
Release v2024.2.0 46ccbaa09a8567328cf238cc3ebaabd883daff83
Update translation percentages 56cac9972629ea3d217e07457c380a9a0c1cbb1d
Bump version to development version 9c7a6f5913e9d84fb232e22e22428c32235252ee
Update maintainer docs f96a7fe36c5722d01818e1b905931e96774016bb
[ci] Don't show empty spellcheck summary 9f3b6c397c2af07d827a28561fd8e3044c65bdf6
[docs] Use better CSRF doc link 47a465042973ced59c38f4868980fa601529dbff
Fix broken plugin list 3f733980fb871bfb85ac6b57470228ddf4bc5d1f
Release v2024.2.1 1b3b413a6f611837f4f550ce6df85b5547eb3b45
Bump version a72fb6b9ace17dd6aed00b66d14a525a7ded8dba
Fix missing QR codes a2e90a8e46b127b9d8de30c78abd4962f9286725
Make iCal export private 499c86f26eea72750839aba8f0a15ddb3b140a54
Fix breaking tests 266b54f79b0a92085b0688138318c84418cf98f1
Fix breaking tests some more 765b698ad10c870b144ade1231bdc5f83e7617b4

Summary by Sourcery

Refactor and enhance the codebase with new features like user management views, improved plugin handling, and better serialization. Fix various bugs related to locale handling, QR code generation, and formset management. Update CI workflows and documentation to align with the latest changes.

New Features:

  • Introduce a new serialize_value function to handle serialization of various data types in the cfp_session function.
  • Add a new AdminUserList view to list users with search functionality and actions like password reset and deletion.
  • Implement AdminUserDetail and AdminUserDelete views for detailed user management and deletion.
  • Add a new ActionConfirmMixin to provide variables for action confirmation templates.
  • Introduce a new ReviewAssignmentForm for handling review assignments in a more structured way.
  • Add a new plugin_sort_key and plugin_group_key functions to improve plugin sorting and grouping.
  • Implement a new get_config_json method in the Flow class to return the configuration as JSON.
  • Add a new get_success_url method in various views to determine the redirect URL after form submission.

Bug Fixes:

  • Fix incorrect use of raw strings in regex validators across multiple models.
  • Correct the handling of formset management forms in the review assignment view.
  • Fix the issue with missing QR codes by updating the QR code generation logic.
  • Resolve the problem with incorrect locale preference messages being displayed in the wrong language.
  • Fix the broken plugin list by updating the plugin retrieval logic.

Enhancements:

  • Refactor the cfp_session function to improve session data handling and serialization.
  • Improve the handling of formset errors and management in the submission resources form.
  • Enhance the AdminDashboard view to include additional context data and improve form handling.
  • Refactor the ReviewAssignment view to use a more structured form approach.
  • Improve the ActivityLog display by adding more detailed log messages and object links.
  • Enhance the Event model with new methods for plugin management and data copying.
  • Refactor the SubmissionSerializer to improve initialization and field handling.
  • Improve the get_all_plugins function to better handle plugin visibility and sorting.

Build:

  • Update the docs.yml workflow to include a step for summarizing spelling errors in the GitHub summary.

CI:

  • Modify the CI workflow to handle spelling errors more effectively by summarizing them in the GitHub summary.

Documentation:

  • Update maintainer documentation to reflect recent changes in the codebase.

Tests:

  • Refactor tests for the review assignment feature to align with the new form structure.
  • Add tests for the new AdminUserList and AdminUserDetail views to ensure proper functionality.

Chores:

  • Bump the version to 2024.3.0.dev0 to reflect the latest changes and improvements.

rixx and others added 30 commits August 16, 2024 11:44
Co-authored-by: Michal Stanke <michal@stanke.cz>
Co-authored-by: Yucheng Lin <yuchenglinedu@gmail.com>
Co-authored-by: Francisco <francisco.joao.2003@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Hoi thao Khoa hoc <bantochuc@hoithaokhoahoc.vn>
Co-authored-by: Lucie Anglade <lucie@courtbouillon.org>
Co-authored-by: Lucie Anglade <lucie@courtbouillon.org>
Co-authored-by: Tobias Kunze <r@rixx.de>
@odkhang odkhang force-pushed the sync-upstream-with-conflict branch from 50e3cf0 to 9ae0363 Compare August 19, 2024 07:12
@odkhang odkhang marked this pull request as ready for review August 19, 2024 07:15
Copy link

sourcery-ai bot commented Aug 19, 2024

Reviewer's Guide by Sourcery

This pull request includes a large number of changes across multiple files, focusing on code refactoring, performance improvements, and feature enhancements. Key changes include updating the CFP flow, improving user management views, enhancing markdown sanitization, refactoring the event model, and updating various API endpoints and permissions.

File-Level Changes

Change Details Files
Refactored the CFP flow to improve session data handling and serialization
  • Introduced a new serialize_value function to handle serialization of various data types
  • Refactored the cfp_session function to improve session data handling
  • Updated the get_config and get_config_json methods to return the configuration as JSON
  • Improved the handling of formset templates in the submission resources form
src/pretalx/cfp/flow.py
src/pretalx/orga/templates/orga/submission/content.html
src/pretalx/cfp/templates/cfp/includes/submission_resources_form.html
Added new user management views for administrators
  • Implemented AdminUserList view to list users with search functionality
  • Added AdminUserDetail view for detailed user information
  • Created AdminUserDelete view for user deletion
  • Updated corresponding templates and URLs
src/pretalx/orga/views/admin.py
src/pretalx/orga/templates/orga/admin/user_list.html
src/pretalx/orga/templates/orga/admin/user_detail.html
src/pretalx/orga/templates/orga/admin/user_delete.html
Enhanced markdown sanitization and preview functionality
  • Added DOMPurify for sanitizing markdown preview content
  • Updated JavaScript code to use DOMPurify when rendering markdown
  • Added purify.min.js to relevant templates
src/pretalx/static/common/js/formTools.js
src/pretalx/orga/templates/orga/submission/content.html
src/pretalx/cfp/templates/cfp/event/user_profile.html
src/pretalx/orga/templates/orga/cfp/flow.html
Refactored the event model to improve plugin management and initial data building
  • Updated the available_plugins property to use a dictionary comprehension
  • Refactored the build_initial_data method to improve readability
  • Updated the shred method to include more detailed logging
src/pretalx/event/models/event.py
Updated API permissions and endpoints
  • Refactored the ApiPermission class to improve permission checking
  • Updated the SubmissionViewSet to include is_featured filter
  • Added basename parameter to router registrations in api/urls.py
src/pretalx/api/permissions.py
src/pretalx/api/views/submission.py
src/pretalx/api/urls.py
Improved error handling and logging
  • Added a new ActionConfirmMixin for handling confirmation dialogs
  • Updated various views to use the new ActionConfirmMixin
  • Enhanced logging of activity logs with more detailed messages and links
src/pretalx/common/mixins/views.py
src/pretalx/common/log_display.py
src/pretalx/orga/views/event.py
Updated translations and localization handling
  • Added new translation strings
  • Updated existing translation usage
  • Improved handling of RTL languages
src/pretalx/common/context_processors.py
src/pretalx/cfp/phrases.py
src/pretalx/common/templatetags/rich_text.py
Refactored and improved various form handling
  • Updated ReviewAssignmentForm to handle both reviewer and submission assignments
  • Improved handling of select2 fields in forms
  • Enhanced form validation and cleaning methods
src/pretalx/orga/forms/review.py
src/pretalx/static/common/scss/_select2.scss
src/pretalx/submission/forms/submission.py
Updated schedule export functionality
  • Refactored the ICalExporter to be non-public
  • Updated HTML export to exclude ICS files
  • Improved performance of schedule data generation
src/pretalx/schedule/exporters.py
src/tests/agenda/test_agenda_schedule_export.py
src/pretalx/agenda/views/schedule.py

Tips
  • Trigger a new Sourcery review by commenting @sourcery-ai review on the pull request.
  • Continue your discussion with Sourcery by replying directly to review comments.
  • You can change your review settings at any time by accessing your dashboard:
    • Enable or disable the Sourcery-generated pull request summary or reviewer's guide;
    • Change the review language;
  • You can always contact us if you have any questions or feedback.

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @odkhang - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟡 General issues: 11 issues found
  • 🟢 Security: all looks good
  • 🟡 Testing: 2 issues found
  • 🟡 Complexity: 12 issues found
  • 🟡 Documentation: 1 issue found

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment to tell me if it was helpful.

Comment on lines +60 to +67
def serialize_value(value):
if getattr(value, "pk", None):
return value.pk
if getattr(value, "__iter__", None):
return [serialize_value(element) for element in value]
if getattr(value, "serialize", None):
return value.serialize()
return str(value)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Consider using hasattr instead of getattr with None default

Using hasattr before getattr would make it more explicit when an attribute is missing and prevent potential error masking. Also, consider adding documentation about when this function should be used, especially regarding objects with a 'serialize' method.

Suggested change
def serialize_value(value):
if getattr(value, "pk", None):
return value.pk
if getattr(value, "__iter__", None):
return [serialize_value(element) for element in value]
if getattr(value, "serialize", None):
return value.serialize()
return str(value)
def serialize_value(value):
"""Serialize various types of values, including objects with 'pk', iterables, and objects with 'serialize' method."""
if hasattr(value, "pk"):
return value.pk
if hasattr(value, "__iter__"):
return [serialize_value(element) for element in value]
if hasattr(value, "serialize"):
return value.serialize()
return str(value)

Comment on lines +21 to +24
TEMPLATE_LOG_NAMES = {
"pretalx.event.delete": _("The event {name} ({slug}) by {organiser} was deleted."),
"pretalx.organiser.delete": _("The organiser {name} was deleted."),
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Consider using a more robust templating engine for log messages

The new templating system for log messages is a good improvement for flexibility. However, if you plan to expand on this feature, consider using a more robust templating engine that can handle more complex scenarios and provide better error handling.

from jinja2 import Template

TEMPLATE_LOG_NAMES = {
    "pretalx.event.delete": Template("The event {{ name }} ({{ slug }}) by {{ organiser }} was deleted."),
    "pretalx.organiser.delete": Template("The organiser {{ name }} was deleted."),
}

Comment on lines 33 to 37
availabilities = []

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Simplified availability validation logic

The removal of the separate is_valid function and its inline replacement in the list comprehension improves code conciseness without sacrificing readability.

        if instance:
            availabilities = AvailabilitySerializer(
                instance.availabilities.all(), many=True
            ).data
        else:
            availabilities = []

        result = {
            "availabilities": [
                avail for avail in availabilities if avail["end"] > avail["start"]
            ],

@@ -121,7 +120,7 @@
raise forms.ValidationError(message)
rawavail.pop("id", None)
rawavail.pop("allDay", None)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Optimized set comparison

Using != instead of not == for set comparison is slightly more efficient and idiomatic Python.

Suggested change
rawavail.pop("allDay", None)
if not {"start", "end"}.issubset(rawavail) or len(rawavail) > 2:

@@ -269,7 +269,7 @@ class SubmissionDraftDiscardView(

def get_object(self):
submission = super().get_object()
if not submission.state == SubmissionStates.DRAFT:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Simplified state comparison

The condition has been rewritten in a more idiomatic and readable way, directly using != instead of not ==.

request.session[child_session_key] = s.session_key
store = SessionStore()
if not child_session or not store.exists(child_session):
store[f"pretalx_event_access_{request.event.pk}"] = (
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider simplifying the logic by removing unnecessary line breaks and using more descriptive variable names.

The new code introduces additional complexity due to the use of parentheses for line continuation and changes in formatting, which can make it harder to read and maintain. Consider simplifying the logic by removing unnecessary line breaks and using more descriptive variable names consistently. Here's a suggestion for a more readable implementation:

collect_signal(html_head, {"sender": request.event, "request": request})

if (
    not request.event.is_public
    and request.event.custom_domain
    and request.user.has_perm("cfp.view_event", request.event)
):
    child_session_key = f"child_session_{request.event.pk}"
    child_session = request.session.get(child_session_key)
    session_store = SessionStore()

    if not child_session or not session_store.exists(child_session):
        session_store[f"pretalx_event_access_{request.event.pk}"] = request.session.session_key
        session_store.create()
        context["new_session"] = session_store.session_key
        request.session[child_session_key] = session_store.session_key
        request.session["event_access"] = True
    else:
        context["new_session"] = child_session
        request.session["event_access"] = True

return context

This version maintains clarity and reduces complexity, making it easier to follow the logic.

@@ -31,6 +31,16 @@
ENCRYPTED_PASSWORD_PLACEHOLDER = "*******"


def make_naive(moment):
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider keeping make_naive as a local function within the method.

The recent change to move the make_naive function outside of its original method introduces unnecessary complexity. Since make_naive is only used in one place, keeping it as a local function within the method maintains better encapsulation and readability. By making it a global function, it could lead to potential misuse and disrupts the logical flow of the class. Consider keeping make_naive as a local function within the method to simplify the code and maintain clarity.

@@ -182,6 +182,19 @@ class DirectionForm(forms.Form):
required=False,
)

class ReviewAssignmentForm(forms.Form):
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider refactoring common logic into a helper method to reduce redundancy.

The new code introduces a more complex class hierarchy with ReviewAssignmentForm as a base class and two subclasses, ReviewerForProposalForm and ProposalForReviewerForm. This adds layers to the class structure, making it harder to trace data flow and understand class relationships. Additionally, there's redundant logic in setting up fields across the subclasses, which can complicate maintenance. The __init__ methods are doing a lot of work, including database queries and dynamic field setup, which can impact readability and performance. Consider refactoring common logic into a helper method to reduce redundancy and simplify the code. Also, evaluate if all logic in __init__ is necessary or if it can be moved elsewhere. This will help adhere to the Single Responsibility Principle and make the forms easier to maintain and test.

@@ -78,3 +83,104 @@ def result_table(self):

def get_success_url(self):
return reverse("orga:admin.update")


class AdminUserList(PermissionRequired, ListView):
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider refactoring common logic to reduce complexity.

The new code introduces additional complexity compared to the original. Here are some observations:

  1. Increased Complexity: The addition of new classes (AdminUserList, AdminUserDetail, AdminUserDelete) and methods increases the overall complexity, making the code harder to understand and maintain.

  2. Additional Dependencies: The use of new modules and decorators like csp_update and scopes_disabled adds to the cognitive load, requiring developers to understand their impact.

  3. Complex Logic: Methods contain more complex logic, such as handling multiple actions and constructing querysets with filters and annotations, which can be challenging to read and maintain.

  4. Repetition: The dispatch method is overridden in multiple classes to disable scopes, which could be refactored to reduce redundancy.

  5. Potential for Errors: The increased complexity can lead to a higher potential for bugs and errors.

Suggestions for simplification:

  • Refactor Common Logic: Consider using a mixin or utility function for common logic like the dispatch method.

  • Simplify Querysets: Break down complex queryset logic into smaller functions or use helper methods.

  • Evaluate Dependencies: Review the necessity of new dependencies and simplify where possible.

Overall, simplifying these aspects could improve readability and maintainability.

team = super().get_object()
if "user_pk" in self.kwargs:
return team.members.filter(pk=self.kwargs.get("user_pk")).first()
return team

def action_object_name(self):
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider refactoring common logic into a mixin to reduce code duplication.

The recent changes have increased the complexity of the code. Here are some observations and suggestions for refactoring:

  1. Increased Complexity: The get_object method now includes an optional queryset parameter in multiple classes, but it doesn't seem to be used effectively. Consider removing it if it's unnecessary.

  2. Redundant Methods: Methods like action_object_name and action_back_url are repeated across classes. Extract these into a mixin or utility function to reduce duplication.

  3. Inconsistent Method Usage: The form_valid method in TeamDetail has been split into form_valid and get_success_url. While this can be beneficial, ensure the logic is streamlined to avoid unnecessary complexity.

  4. Additional Properties: The addition of properties like action_title, action_text, etc., increases maintenance overhead. Consider consolidating these into a base class or mixin.

Refactoring suggestions:

  • Refactor Common Logic: Use a mixin for common methods like action_object_name and action_back_url.
  • Simplify Method Signatures: Remove unused parameters like queryset.
  • Consolidate Properties: Use a base class or mixin for shared properties.

These changes should help simplify the code and improve maintainability.

@mariobehling
Copy link
Member

Please check failing tests.

@mariobehling
Copy link
Member

Thank you. We just got most tests succeeding in the previous sync, but with this PR a number of tests are failing again. How to deal with it? Could you help to make tests succeeding?

@odkhang odkhang marked this pull request as draft August 28, 2024 03:25
@odkhang odkhang marked this pull request as ready for review August 28, 2024 04:07
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @odkhang - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟡 General issues: 2 issues found
  • 🟢 Security: all looks good
  • 🟡 Testing: 3 issues found
  • 🟢 Complexity: all looks good
  • 🟡 Documentation: 1 issue found

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment to tell me if it was helpful.

Comment on lines +60 to +67
def serialize_value(value):
if getattr(value, "pk", None):
return value.pk
if getattr(value, "__iter__", None):
return [serialize_value(element) for element in value]
if getattr(value, "serialize", None):
return value.serialize()
return str(value)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Consider handling more specific types in serialize_value function

While the new serialize_value function is a good improvement, you might want to consider handling more specific types. For example, you could add explicit handling for datetime objects or custom classes with a str method.

def serialize_value(value):
    if getattr(value, "pk", None):
        return value.pk
    if isinstance(value, datetime):
        return value.isoformat()
    if getattr(value, "__iter__", None):
        return [serialize_value(element) for element in value]
    if getattr(value, "serialize", None):
        return value.serialize()
    if hasattr(value, "__str__"):
        return str(value)
    return repr(value)

@@ -121,7 +120,7 @@ def _validate_availability(self, rawavail):
raise forms.ValidationError(message)
rawavail.pop("id", None)
rawavail.pop("allDay", None)
if not set(rawavail.keys()) == {"start", "end"}:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): Logic change in key validation could introduce bugs

The change from set(rawavail.keys()) == {"start", "end"} to set(rawavail.keys()) != {"start", "end"} alters the logic of this check. Please verify that this change is intentional and doesn't introduce any bugs or unintended behavior.

@@ -490,13 +490,7 @@ def test_orga_can_assign_reviewer_to_submission(orga_client, review_user, submis
response = orga_client.post(
submission.event.orga_urls.reviews + "assign/?direction=submission",
{
"formset-TOTAL_FORMS": 1,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (testing): Update test to reflect new form structure for assigning reviewers

The test has been updated to use the new form structure for assigning reviewers to submissions. This change aligns with modifications in the view logic. Ensure that the new structure correctly represents how the form data is now submitted and processed.

Suggested change
"formset-TOTAL_FORMS": 1,
f"submission-{submission.code}": [str(review_user.id)],

reverse(
"agenda:export.schedule.ics",
kwargs={"event": slot.submission.event.slug},
),
follow=True,
)
assert response.status_code == 200
assert response.status_code == 200
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question (testing): Update iCal export test to use orga_client and increase query count

The test has been updated to use orga_client instead of client, and the maximum number of queries allowed has been increased from 14 to 16. This change might indicate that the iCal export now requires additional database queries. It would be beneficial to investigate if these extra queries are necessary or if there's room for optimization.

@@ -232,7 +232,7 @@
@pytest.mark.django_db
@pytest.mark.parametrize(
"exporter",
("schedule.xml", "schedule.json", "schedule.xcal", "schedule.ics", "feed"),
("schedule.xml", "schedule.json", "schedule.xcal", "feed"),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (testing): Remove 'schedule.ics' from export test parameters

The 'schedule.ics' export has been removed from the test parameters. This change suggests that the iCal export is no longer being tested in the same way as other formats. It's important to ensure that the iCal export is still being adequately tested, possibly in a separate test case that accounts for its unique requirements.

@@ -37,7 +37,7 @@ Take-off and landing
3. Make a release commit: ``RELEASE=vx.y.z; git commit -am "Release $RELEASE" && git tag -m "Release $RELEASE" $RELEASE``
4. Build a new release: ``rm -rf dist/ build/ pretalx.egg-info && python -m build -n``
5. Upload the release: ``twine upload dist/pretalx-*``
6. Push the release: ``git push && git push --tags``
6. Push the release: ``git push``
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question (documentation): The '--tags' option has been removed from the git push command.

Was this intentional? If tags should be pushed during the release process, consider keeping the command as git push && git push --tags.

@mariobehling mariobehling requested a review from norbusan August 28, 2024 06:45
@mariobehling mariobehling merged commit d2a617d into fossasia:development Aug 28, 2024
10 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants