{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":153164454,"defaultBranch":"main","name":"django-safemigrate","ownerLogin":"aspiredu","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-10-15T18:44:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2388390?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1721996666.0","currentOid":""},"activityList":{"items":[{"before":"37803197c70f1dee0cccafc6f4018518ab06fb6b","after":null,"ref":"refs/heads/seen-delayed-output","pushedAt":"2024-07-26T12:24:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":"79a48606857a10db2d78ef1e0b8d31fc0a6efdf7","after":"f695074381f1d1ce519964272a9355801f85f37c","ref":"refs/heads/main","pushedAt":"2024-07-26T12:24:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Show when a seen delayed migration can be run (#69)\n\nI avoided pulling in a dependency on something like freezegun by giving a delay\r\nwith a buffer of 10 minutes.","shortMessageHtmlLink":"Show when a seen delayed migration can be run (#69)"}},{"before":"6d87c801af1ec5f694dee60ba6603f8fac4d128f","after":"37803197c70f1dee0cccafc6f4018518ab06fb6b","ref":"refs/heads/seen-delayed-output","pushedAt":"2024-07-26T12:22:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Show when a seen delayed migration can be run\n\nI avoided pulling in a dependency on something like freezegun by giving a delay\nwith a buffer of 10 minutes.","shortMessageHtmlLink":"Show when a seen delayed migration can be run"}},{"before":"16fc730501c07d4a687f55515d723d88451ba333","after":"70350f09d52d2d0c85e15557d8bd5bd1d5286c93","ref":"refs/heads/prefer-compat-style","pushedAt":"2024-07-26T03:24:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Prefer the compatible API where equivalent","shortMessageHtmlLink":"Prefer the compatible API where equivalent"}},{"before":null,"after":"6d87c801af1ec5f694dee60ba6603f8fac4d128f","ref":"refs/heads/seen-delayed-output","pushedAt":"2024-07-26T03:22:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Show when a seen delayed migration can be run\n\nI avoided pulling in a dependency on something like freezegun by giving a delay\nwith a buffer of 10 minutes.","shortMessageHtmlLink":"Show when a seen delayed migration can be run"}},{"before":"c4ab76f9a6051f9cd1801838cee46c6a10056455","after":null,"ref":"refs/heads/compat","pushedAt":"2024-07-25T19:47:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":"a416a2341f972f3b234f244e41b137d953fee6a8","after":"79a48606857a10db2d78ef1e0b8d31fc0a6efdf7","ref":"refs/heads/main","pushedAt":"2024-07-25T19:47:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Add compatibility with documented prior API (#65)","shortMessageHtmlLink":"Add compatibility with documented prior API (#65)"}},{"before":"2f55f4c48e0892f836bcc330430f6727a2948200","after":null,"ref":"refs/heads/default-always","pushedAt":"2024-07-25T19:37:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":"0f1a3755ec89722ab6f80917fc868c28bc4ab01c","after":"a416a2341f972f3b234f244e41b137d953fee6a8","ref":"refs/heads/main","pushedAt":"2024-07-25T19:37:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Update docs for new default (#66)","shortMessageHtmlLink":"Update docs for new default (#66)"}},{"before":null,"after":"16fc730501c07d4a687f55515d723d88451ba333","ref":"refs/heads/prefer-compat-style","pushedAt":"2024-07-25T18:20:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Prefer the compatible API where equivalent","shortMessageHtmlLink":"Prefer the compatible API where equivalent"}},{"before":"883b76b38296dfcb52a47841183de376a61db212","after":"c4ab76f9a6051f9cd1801838cee46c6a10056455","ref":"refs/heads/compat","pushedAt":"2024-07-25T18:20:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Add compatibility with documented prior API","shortMessageHtmlLink":"Add compatibility with documented prior API"}},{"before":null,"after":"2f55f4c48e0892f836bcc330430f6727a2948200","ref":"refs/heads/default-always","pushedAt":"2024-07-25T18:05:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Update docs for new default","shortMessageHtmlLink":"Update docs for new default"}},{"before":"f10caaa81ab514b3044094eeb5875aaf3af05c29","after":null,"ref":"refs/heads/default-always","pushedAt":"2024-07-25T18:03:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":"442336ba112c60654ea1c7151bf3ef11f21ea9a1","after":"0f1a3755ec89722ab6f80917fc868c28bc4ab01c","ref":"refs/heads/main","pushedAt":"2024-07-25T18:03:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Change the default to Safe.always (#64)","shortMessageHtmlLink":"Change the default to Safe.always (#64)"}},{"before":"acb5b926b8d971513fcd625ed24fa749f71248ee","after":"f10caaa81ab514b3044094eeb5875aaf3af05c29","ref":"refs/heads/default-always","pushedAt":"2024-07-25T17:44:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Change the default to Safe.always","shortMessageHtmlLink":"Change the default to Safe.always"}},{"before":"483818baee3136e1105fb41e42a6d5069168846e","after":null,"ref":"refs/heads/detect-all-safe","pushedAt":"2024-07-25T17:07:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":"17056c1d4b750c70ff0b982d4f742ad89ee873dc","after":"442336ba112c60654ea1c7151bf3ef11f21ea9a1","ref":"refs/heads/main","pushedAt":"2024-07-25T17:07:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Write detected migrations even when all are safe (#62)","shortMessageHtmlLink":"Write detected migrations even when all are safe (#62)"}},{"before":"3de2104958eb381d4919c00c668611db68afd97c","after":null,"ref":"refs/heads/rename-enums","pushedAt":"2024-07-25T13:56:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":"77989429792f406f5dd36d9437e886c164109c5a","after":"17056c1d4b750c70ff0b982d4f742ad89ee873dc","ref":"refs/heads/main","pushedAt":"2024-07-25T13:56:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Rename enums for clarity and pep8 (#63)","shortMessageHtmlLink":"Rename enums for clarity and pep8 (#63)"}},{"before":"570ddeeb6105d5891b24c7a2e96b95f2f2dd9563","after":"3de2104958eb381d4919c00c668611db68afd97c","ref":"refs/heads/rename-enums","pushedAt":"2024-07-25T13:52:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Rename enums for clarity and pep8","shortMessageHtmlLink":"Rename enums for clarity and pep8"}},{"before":"f8a55341d8ba29f02eb84e20cc08b376e9e070d0","after":"acb5b926b8d971513fcd625ed24fa749f71248ee","ref":"refs/heads/default-always","pushedAt":"2024-07-25T13:27:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Change the default to Safe.always","shortMessageHtmlLink":"Change the default to Safe.always"}},{"before":"4d0acee5b5dbe32b5593ff7dd624a33e106296ad","after":"483818baee3136e1105fb41e42a6d5069168846e","ref":"refs/heads/detect-all-safe","pushedAt":"2024-07-25T13:22:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Write detected migrations even when all are safe","shortMessageHtmlLink":"Write detected migrations even when all are safe"}},{"before":null,"after":"883b76b38296dfcb52a47841183de376a61db212","ref":"refs/heads/compat","pushedAt":"2024-07-25T00:35:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Add compatibility with documented prior API","shortMessageHtmlLink":"Add compatibility with documented prior API"}},{"before":null,"after":"f8a55341d8ba29f02eb84e20cc08b376e9e070d0","ref":"refs/heads/default-always","pushedAt":"2024-07-24T06:01:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Change the default to Safe.always","shortMessageHtmlLink":"Change the default to Safe.always"}},{"before":null,"after":"570ddeeb6105d5891b24c7a2e96b95f2f2dd9563","ref":"refs/heads/rename-enums","pushedAt":"2024-07-24T05:30:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Rename enums for clarity and pep8","shortMessageHtmlLink":"Rename enums for clarity and pep8"}},{"before":"0d723462c3e845adc40b9ad76d98880e0036b84e","after":null,"ref":"refs/heads/combo-refactor","pushedAt":"2024-07-24T05:14:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"}},{"before":null,"after":"4d0acee5b5dbe32b5593ff7dd624a33e106296ad","ref":"refs/heads/detect-all-safe","pushedAt":"2024-07-24T04:42:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Write detected migrations even when all are safe","shortMessageHtmlLink":"Write detected migrations even when all are safe"}},{"before":"ae8cffe3e0889db740687b7b69dd3460d8b793ae","after":"0d723462c3e845adc40b9ad76d98880e0036b84e","ref":"refs/heads/combo-refactor","pushedAt":"2024-07-22T05:06:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Refactor and add backward compatibility\n\nThe refactor is significant. It needed to reorder operations to\nallow for calculating safety configuration and delays, but along\nthe way cleaned up naming, the default configuration, and the\ncategories calculated and output to the user.\n\nRename the internal enums and enum items. Call the enum that\nrepresents the run mode of \"strict\", \"nonstrict\", or \"disabled\"\nMode, with PEP8 compliant names of STRICT, NONSTRICT, and DISABLED.\nCall the enum that represents the when each migration is allowed\nto run When, with names of BEFORE_DEPLOY, AFTER_DEPLOY, and ALWAYS.\n\nFactor out the loops that walk the dependency tree to categorize\nthe migrations into ready, delayed, and blocked. Remove the\ncategory of \"protected\" migrations and combine it with delayed.\n\nRefactor the model manager into a model queryset, and separate\nfiltering the queryset from resolving the final data type.\n\nOnly write and read SafeMigration records for migrations that are\nafter_deploy and have a delay set.\n\nOnly write SafeMigration records for migrations that are delayed,\nnot blocked or ready, to preserve appropriate semantics for\nnonstrict mode.\n\nSpecial-case Safe.before_deploy, Safe.after_deploy, and Safe.always\nto be allowed as callables for backward compatiblity.\n\nCategorize ``Safe.after_deploy`` and ``Safe.always`` migrations as\nblocked if they depend on other blocked migrations. The earliest\nblocked migrations must still be a ``Safe.before_deploy`` migration\nthat depends on a ``Safe.after_deploy`` migration.\n\nChange the default safe marking from ``Safe.after_deploy`` to\n``Safe.always``, to be more reasonable for working with third-party\napps that do not use django-safemigrate.","shortMessageHtmlLink":"Refactor and add backward compatibility"}},{"before":"9241a063521480d91ada142d6ecc4f5f63b66cb5","after":"ae8cffe3e0889db740687b7b69dd3460d8b793ae","ref":"refs/heads/combo-refactor","pushedAt":"2024-07-21T22:39:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Refactor and add backward compatibility\n\nThe refactor is significant. It needed to reorder operations to\nallow for calculating safety configuration and delays, but along\nthe way cleaned up naming, the default configuration, and the\ncategories calculated and output to the user.\n\nRename the internal enums and enum items. Call the enum that\nrepresents the run mode of \"strict\", \"nonstrict\", or \"disabled\"\nMode, with PEP8 compliant names of STRICT, NONSTRICT, and DISABLED.\nCall the enum that represents the when each migration is allowed\nto run When, with names of BEFORE_DEPLOY, AFTER_DEPLOY, and ALWAYS.\n\nFactor out the loops that walk the dependency tree to categorize\nthe migrations into ready, delayed, and blocked. Remove the\ncategory of \"protected\" migrations and combine it with delayed.\n\nRefactor the model manager into a model queryset, and separate\nfiltering the queryset from resolving the final data type.\n\nOnly write and read SafeMigration records for migrations that are\nafter_deploy and have a delay set.\n\nOnly write SafeMigration records for migrations that are delayed,\nnot blocked or ready, to preserve appropriate semantics for\nnonstrict mode.\n\nSpecial-case Safe.before_deploy, Safe.after_deploy, and Safe.always\nto be allowed as callables for backward compatiblity.\n\nCategorize ``Safe.after_deploy`` and ``Safe.always`` migrations as\nblocked if they depend on other blocked migrations. The earliest\nblocked migrations must still be a ``Safe.before_deploy`` migration\nthat depends on a ``Safe.after_deploy`` migration.\n\nChange the default safe marking from ``Safe.after_deploy`` to\n``Safe.always``, to be more reasonable for working with third-party\napps that do not use django-safemigrate.","shortMessageHtmlLink":"Refactor and add backward compatibility"}},{"before":"c3bbe9cd01ab9aec6321916104e9d8fb02768906","after":"9241a063521480d91ada142d6ecc4f5f63b66cb5","ref":"refs/heads/combo-refactor","pushedAt":"2024-07-21T21:51:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanhiebert","name":"Ryan Hiebert","path":"/ryanhiebert","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/425099?s=80&v=4"},"commit":{"message":"Refactor and add backward compatibility\n\nThe refactor is significant. It needed to reorder operations to\nallow for calculating safety configuration and delays, but along\nthe way cleaned up naming, the default configuration, and the\ncategories calculated and output to the user.\n\nRename the internal enums and enum items. Call the enum that\nrepresents the run mode of \"strict\", \"nonstrict\", or \"disabled\"\nMode, with PEP8 compliant names of STRICT, NONSTRICT, and DISABLED.\nCall the enum that represents the when each migration is allowed\nto run When, with names of BEFORE_DEPLOY, AFTER_DEPLOY, and ALWAYS.\n\nFactor out the loops that walk the dependency tree to categorize\nthe migrations into ready, delayed, and blocked. Remove the\ncategory of \"protected\" migrations and combine it with delayed.\n\nRefactor the model manager into a model queryset, and separate\nfiltering the queryset from resolving the final data type.\n\nOnly write and read SafeMigration records for migrations that are\nafter_deploy and have a delay set.\n\nOnly write SafeMigration records for migrations that are delayed,\nnot blocked or ready, to preserve appropriate semantics for\nnonstrict mode.\n\nSpecial-case Safe.before_deploy, Safe.after_deploy, and Safe.always\nto be allowed as callables for backward compatiblity.\n\nCategorize ``Safe.after_deploy`` and ``Safe.always`` migrations as\nblocked if they depend on other blocked migrations. The earliest\nblocked migrations must still be a ``Safe.before_deploy`` migration\nthat depends on a ``Safe.after_deploy`` migration.\n\nChange the default safe marking from ``Safe.after_deploy`` to\n``Safe.always``, to be more reasonable for working with third-party\napps that do not use django-safemigrate.","shortMessageHtmlLink":"Refactor and add backward compatibility"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEigHGUwA","startCursor":null,"endCursor":null}},"title":"Activity ยท aspiredu/django-safemigrate"}