{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":49133917,"defaultBranch":"main","name":"rails","ownerLogin":"Edouard-chin","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2016-01-06T12:30:04.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8122246?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1708958474.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"86cc3ad1effc113176be319f7186a53d9b0e9405","ref":"refs/heads/backport-update-erb-trim-mode-docs","pushedAt":"2024-02-26T14:41:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Update docs for erb_trim_mode [ci-skip]","shortMessageHtmlLink":"Update docs for erb_trim_mode [ci-skip]"}},{"before":"e89b5a66ca328fc579dfc7964883f7d96b6bd5c7","after":"7bfb3d8f0656c599c45c53aefef96e223302d261","ref":"refs/heads/ec-disable-cache-clearing","pushedAt":"2024-02-15T23:39:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Don't clear the local cache on each requests with `with_local_cache`:\n\n- The `ActiveSupport::LocalCache::Middleware` clears the local cache\n after each requests, but when using the `with_local_cache` method,\n this is counter intuitive as this method is supposed to use a\n cache for the duration of the block:\n\n ```ruby\n Rails.cache.with_local_cache do\n get \"/\"\n # Before this patch: Cache is cleared here\n end\n # After this patch: Cache is cleared here\n ```","shortMessageHtmlLink":"Don't clear the local cache on each requests with with_local_cache:"}},{"before":"42a0c7a5eea0ba5fed26817dd3b6da714b5ce3f8","after":"e89b5a66ca328fc579dfc7964883f7d96b6bd5c7","ref":"refs/heads/ec-disable-cache-clearing","pushedAt":"2024-02-15T23:29:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Don't clear the local cache on each requests with `with_local_cache`:\n\n- The `ActiveSupport::LocalCache::Middleware` clears the local cache\n after each requests, but when using the `with_local_cache` method,\n this is counter intuitive as this method is supposed to use a\n cache for the duration of the block:\n\n ```ruby\n Rails.cache.with_local_cache do\n get \"/\"\n # Before this patch: Cache is cleared here\n end\n # After this patch: Cache is cleared here\n ```","shortMessageHtmlLink":"Don't clear the local cache on each requests with with_local_cache:"}},{"before":null,"after":"42a0c7a5eea0ba5fed26817dd3b6da714b5ce3f8","ref":"refs/heads/ec-disable-cache-clearing","pushedAt":"2024-02-15T23:28:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Don't clear the local cache on each requests with `with_local_cache`:\n\n- The `ActiveSupport::LocalCache::Middleware` clears the local cache\n after each requests, but when using the `with_local_cache` method,\n this is counter intuitive as this method is supposed to use a\n cache for the duration of the block:\n\n ```ruby\n Rails.cache.with_local_cache do\n get \"/\"\n # Before this patch: Cache is cleared here\n end\n # After this patch: Cache is cleared here\n ```","shortMessageHtmlLink":"Don't clear the local cache on each requests with with_local_cache:"}},{"before":"cbb0eebd5364edae7f2bdc870c77a236249ecffe","after":"ce9f13c97ec6846b6981c42965ed995c754b2669","ref":"refs/heads/ec-dont-load-test-from-fixture","pushedAt":"2024-02-13T18:01:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Don't load `*_test.rb` file from the \"fixtures\" folder:\n\n- If an application has files named `*_test.rb` in the\n \"fixtures/files\" folder, they were picked up to be loaded.\n In most cases this would result in a LoadError as its likely\n those files include code that can't be loaded.","shortMessageHtmlLink":"Don't load *_test.rb file from the \"fixtures\" folder:"}},{"before":"7a2720b7fa0c23152c2757a0c0097a80299aa2fb","after":"cbb0eebd5364edae7f2bdc870c77a236249ecffe","ref":"refs/heads/ec-dont-load-test-from-fixture","pushedAt":"2024-02-13T17:59:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Don't load `*_test.rb` file from the \"fixtures\" folder:\n\n- If an application has files named `*_test.rb` in the\n \"fixtures/files\" folder, they were picked up to be loaded.\n In most cases this would result in a LoadError as its likely\n those files include code that can't be loaded.","shortMessageHtmlLink":"Don't load *_test.rb file from the \"fixtures\" folder:"}},{"before":null,"after":"7a2720b7fa0c23152c2757a0c0097a80299aa2fb","ref":"refs/heads/ec-dont-load-test-from-fixture","pushedAt":"2024-02-13T17:56:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Don't load `*_test.rb` file from the \"fixtures\" folder:\n\n- If an application has files named `*_test.rb` in the\n \"fixtures/files\" folder, they were picked up to be loaded.\n In most cases this would result in a LoadError as its likely\n those files include code that can't be loaded.","shortMessageHtmlLink":"Don't load *_test.rb file from the \"fixtures\" folder:"}},{"before":"27d99d1bd83c58bde69093ea89fe76247113d7ed","after":"82d4ad5da336a18a55a05a50b851e220032369a0","ref":"refs/heads/ec-inverseof-blob","pushedAt":"2024-01-19T03:18:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Fix ActiveStorage::Blob inverse association:\n\n- This is a fix needed to unblock\n https://github.com/rails/rails/pull/50284,\n because Active Storage relies on a Active Record bug.\n\n The problem is best understood with a small snippet:\n\n ```\n blob = ActiveStorage::Blob.new\n\n ActiveStorage::Attachment.new(blob: blob)\n ActiveStorage::Attachment.new(blob: blob)\n\n # Currently:\n p blob.attachments #=> #\n\n # Once the Active Record bug is fixed:\n p blob.attachments #=> #, #]>\n\n # Trying to save the blob would result in trying to create 2 attachments which\n # fails because of unique constrainsts.\n ```\n\n ### Code path\n\n The real code path that does what the snippet above does is located here:\n\n https://github.com/rails/rails/blob/9c3ffab47c3bf59320ba08e9dafdb0275cf91a5a/activestorage/lib/active_storage/attached/many.rb#L52\n\n It's basically doing this:\n\n ```\n user.images.attach \"photo1.png\"\n # Initialize a Blob record and an Attachment\n\n user.images.attach \"photo2.png\"\n # Get the Blob from above, create another Attachment\n # Initialize a new Blob record and an new Attachment\n\n # rinse and repeat every time `attach` is called\n ```\n\n Basically each time we call `attach`, we grab the previous blobs that were attached\n (and that already have an Attachment record), and\n\n ### Solution\n\n - Explicitly set the `inverse_of`, so that it behaves as if #50284 is shipped\n - Don't build a new attachment for blob already having one.\n\n ### Tests\n\n I didn't add tests, the test suite is already well covered, adding the `inverse_of`\n without any changes breaks the test suite already. You can try by running\n for instance the `activestorage/test/models/attached/many_test.rb`.","shortMessageHtmlLink":"Fix ActiveStorage::Blob inverse association:"}},{"before":null,"after":"27d99d1bd83c58bde69093ea89fe76247113d7ed","ref":"refs/heads/ec-inverseof-blob","pushedAt":"2024-01-19T03:11:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Fix ActiveStorage::Blob inverse association:\n\n- This is a fix needed to unblock\n https://github.com/rails/rails/pull/50284,\n because Active Storage relies on a Active Record bug.\n\n The problem is best understood with a small snippet:\n\n ```\n blob = ActiveStorage::Blob.new\n\n ActiveStorage::Attachment.new(blob: blob)\n ActiveStorage::Attachment.new(blob: blob)\n\n # Currently:\n p blob.attachments #=> #\n\n # Once the Active Record bug is fixed:\n p blob.attachments #=> #, #]>\n\n # Trying to save the blob would result in trying to create 2 attachments which\n # fails because of unique constrainsts.\n ```\n\n ### Code path\n\n The real code path that does what the snippet above does is located here:\n\n https://github.com/rails/rails/blob/9c3ffab47c3bf59320ba08e9dafdb0275cf91a5a/activestorage/lib/active_storage/attached/many.rb#L52\n\n It's basically doing this:\n\n ```\n user.images.attach \"photo1.png\"\n # Initialize a Blob record and an Attachment\n\n user.images.attach \"photo2.png\"\n # Get the Blob from above, create another Attachment\n # Initialize a new Blob record and an new Attachment\n\n # rinse and repeat every time `attach` is called\n ```\n\n Basically each time we call `attach`, we grab the previous blobs that were attached\n (and that already have an Attachment record), and\n\n ### Solution\n\n - Explicitly set the `inverse_of`, so that it behaves as if #50284 is shipped\n - Don't build a new attachment for blob already having one.\n\n ### Tests\n\n I didn't add tests, the test suite is already well covered, adding the `inverse_of`\n without any changes breaks the test suite already. You can try by running\n for instance the `activestorage/test/models/attached/many_test.rb`.","shortMessageHtmlLink":"Fix ActiveStorage::Blob inverse association:"}},{"before":"0f6da082dffaea1243693a005bf18fe3d31064f7","after":"ac23c0da581bc9511fde2bf636b828887cc4c747","ref":"refs/heads/ec-tagged-logging","pushedAt":"2024-01-17T12:35:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"PR review","shortMessageHtmlLink":"PR review"}},{"before":"b6bb5065101b04dbc3e25971f5438de5d344fc86","after":null,"ref":"refs/heads/ec-log-level","pushedAt":"2024-01-04T18:54:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"48f54e5c4f8f3829185d9886aadaa3d8b75ba302","after":"b6bb5065101b04dbc3e25971f5438de5d344fc86","ref":"refs/heads/ec-log-level","pushedAt":"2023-12-12T14:57:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Fix `config.log_level` being ignored when using a Broadcast Logger:\n\n- ### Problem\n\n If an application has configured a Broadcast Logger, setting the\n `config.log_level` to any value has no effect:\n\n ```ruby\n # config/application.rb\n\n config.logger = ActiveSupport::BroadcastLogger.new(Logger.new(STDOUT))\n config.log_level = :warn\n\n puts Rails.logger.broadcasts.map(&:level) # => [Logger::DEBUG]\n ```\n\n This is a side effect of #49621 which tried to fix the `log_level`\n default value overriding the whole broadcasts.\n\n ### Context\n\n The `log_level` default's value shouldn't apply to a Broadcast\n Logger, as otherwise it overrides whatever the application\n previously configured. While this behaviour is the same with\n a vanilla logger, at least we can workaround it:\n\n ```ruby\n # When using a vanilla logger\n\n config.logger = Logger.new(STDOUT, level: LOGGER::WARN)\n # Once the app boots, the level is overriden to DEBUG. We need to add the following line.\n config.log_level = :warn\n\n # When using a broadcast logger\n\n stdout = Logger.new(STDOUT, level: Logger::INFO)\n stderr = Logger.new(STDERR, level: Logger::ERROR)\n config.logger = ActiveSupport::BroadcastLogger(stdout, stderr)\n\n # Once the app boots the whole broadcast level is overriden to DEBUG.\n # There is no way to workaround this as you can't fine grain the level of each\n # loggers with `config.log_level=`.\n ```\n\n ### Solution\n\n This PR ignores the default `log_level` value when using a Broadcast Logger,\n but ensure it gets used if an application manually sets it.\n\n Fix #50324","shortMessageHtmlLink":"Fix config.log_level being ignored when using a Broadcast Logger:"}},{"before":null,"after":"48f54e5c4f8f3829185d9886aadaa3d8b75ba302","ref":"refs/heads/ec-log-level","pushedAt":"2023-12-12T14:49:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":":info: To backport to 7-1 stable please :bow:\n\nFix `config.log_level` being ignored when using a Broadcast Logger:\n\n- ### Problem\n\n If an application has configured a Broadcast Logger, setting the\n `config.log_level` to any value has no effect:\n\n ```ruby\n # config/application.rb\n\n config.logger = ActiveSupport::BroadcastLogger.new(Logger.new(STDOUT))\n config.log_level = :warn\n\n puts Rails.logger.broadcasts.map(&:level) # => [Logger::DEBUG]\n ```\n\n This is a side effect of #49621 which tried to fix the `log_level`\n default value overriding the whole broadcasts.\n\n ### Context\n\n The `log_level` default's value shouldn't apply to a Broadcast\n Logger, as otherwise it overrides whatever the application\n previously configured. While this behaviour is the same with\n a vanilla logger, at least we can workaround it:\n\n ```ruby\n # When using a vanilla logger\n\n config.logger = Logger.new(STDOUT, level: LOGGER::WARN)\n # Once the app boots, the level is overriden to DEBUG. We need to add the following line.\n config.log_level = :warn\n\n # When using a broadcast logger\n\n stdout = Logger.new(STDOUT, level: Logger::INFO)\n stderr = Logger.new(STDERR, level: Logger::ERROR)\n config.logger = ActiveSupport::BroadcastLogger(stdout, stderr)\n\n # Once the app boots the whole broadcast level is overriden to DEBUG.\n # There is no way to workaround this as you can't fine grain the level of each\n # loggers with `config.log_level=`.\n ```\n\n ### Solution\n\n This PR ignores the default `log_level` value when using a Broadcast Logger,\n but ensure it gets used if an application manually sets it.\n\n Fix #50324","shortMessageHtmlLink":":info: To backport to 7-1 stable please ๐Ÿ™‡"}},{"before":"f3747d0a0187ca2c9c5ebf7dec76fd55b4e7d3e8","after":"06d8264ab62c7d68ec9e24128b8f4e0ac89b3698","ref":"refs/heads/ec-flash-middleware-remove","pushedAt":"2023-12-11T12:57:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"fixup! PR REVIEW: Take in consideration API-only apps:","shortMessageHtmlLink":"fixup! PR REVIEW: Take in consideration API-only apps:"}},{"before":"17fe0bcea2020135a713ad793bd7e00ceacbffec","after":"f3747d0a0187ca2c9c5ebf7dec76fd55b4e7d3e8","ref":"refs/heads/ec-flash-middleware-remove","pushedAt":"2023-10-25T14:00:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"fixup! PR REVIEW: Take in consideration API-only apps:","shortMessageHtmlLink":"fixup! PR REVIEW: Take in consideration API-only apps:"}},{"before":"ae090d96c80dae1d0bcbabcfa932bbfd5008dc3e","after":"17fe0bcea2020135a713ad793bd7e00ceacbffec","ref":"refs/heads/ec-flash-middleware-remove","pushedAt":"2023-10-25T13:14:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"PR REVIEW: Take in consideration API-only apps:\n\n- Added docs on how to opt-in for the flash feature now\n that the middleware is depracated.\n\n- Added another deprecation and test to make sure API-only apps\n that previously opted-in to flash will see the deprecation.\n There is now 2 distincts deprecation:\n\n ```ruby\n middleware.insert_after(ActionDispatch::Flash, MyMiddleware)\n # Deprecated with no replacement\n\n middleware.use(ActionDispatch::Flash)\n # Deprecated with a message saying how to migrate\n ```","shortMessageHtmlLink":"PR REVIEW: Take in consideration API-only apps:"}},{"before":"444a74834e86df57c6f58299a6e0e6826429bd38","after":"ae090d96c80dae1d0bcbabcfa932bbfd5008dc3e","ref":"refs/heads/ec-flash-middleware-remove","pushedAt":"2023-10-25T12:01:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Remove reference to the flash middleware from the docs","shortMessageHtmlLink":"Remove reference to the flash middleware from the docs"}},{"before":"db764a431c95d2059bd4cc4c5c6f27bbf33c5635","after":"0f6da082dffaea1243693a005bf18fe3d31064f7","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-25T11:40:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Reimplement TaggedLogging:\n\n- ### Context\n\n The Tagged Logging functionality has been a source of a few\n issues over the years, especially when combined with the\n broadcasting feature.\n Initializating a Tagged Logger wasn't very intuitive:\n\n ```ruby\n logger = Logger.new(STDOUT)\n tagged_logger = ActiveSupport::TaggedLogging.new(logger)\n # Would expect the `tagged_logger` to be an instance of `AS::TaggedLogging`\n # but it's a clone of the `logger`.\n\n tagged_logger.formatter = ->(_, _, _, message) do\n { message: message }\n end\n # Modifies the formatter to output JSON formatted logs.\n # This breaks tagged logging.\n ```\n\n I believe the main reason of those issues is because tagged logging\n is implemented at the wrong level.\n\n ### Solution\n\n I made a proposal on the Ruby logger upstream in ruby/logger#90 to help\n solve this but it hasn't been reviewed yet. So I thought about adding\n it here for now.\n The TL;DR is to decouple formatting and adding extra information to\n logs (which is what tagged logging does).\n\n ### Deprecation\n\n Since TaggedLogging will no longer access the formatter, there is a\n few things I'd like to deprecate (such as setting a default\n formatter https://github.com/rails/rails/blob/d68e43922bc11829c52ad9f736ad5549fc97631b/activesupport/lib/active_support/tagged_logging.rb#L124)\n but doing so in this PR would increase the size of the diff\n significantly and would maybe distract for PR reviews.\n\n Another thing that I believe should be deprecated is\n `ActiveSupport::TaggedLogging.new`. Adding tagging\n functionality to a logger should be done using\n a more ruby approach such as `logger.extend(AS::TaggedLogging)`.\n\n Fix #49757\n Fix #49745\n Fix #46084\n Fix #44668\n\nI made a propose on the Ruby logger upstream in ruby/logger#90,\n but it hasn't been reviewed it.","shortMessageHtmlLink":"Reimplement TaggedLogging:"}},{"before":"3a49be6f9526a2b916992eb8cbfe3f0310bfeddc","after":"db764a431c95d2059bd4cc4c5c6f27bbf33c5635","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-24T21:10:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"26f4d573e546a80ac108167e72113bf81fc6c26c","after":"3a49be6f9526a2b916992eb8cbfe3f0310bfeddc","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-24T17:17:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"b37b05d4eb3d6464fa731566eed409f59ce22a9d","after":"26f4d573e546a80ac108167e72113bf81fc6c26c","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-24T16:47:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"b0aac30b1deb8e498ab7a2d24916fa0bf4fc00f3","after":"b37b05d4eb3d6464fa731566eed409f59ce22a9d","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-24T16:28:15.000Z","pushType":"push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"00c5de06abe9a243235784dac6dbafcf17df2f70","after":"b0aac30b1deb8e498ab7a2d24916fa0bf4fc00f3","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-24T16:21:44.000Z","pushType":"push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":null,"after":"00c5de06abe9a243235784dac6dbafcf17df2f70","ref":"refs/heads/ec-tagged-logging","pushedAt":"2023-10-24T15:34:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"8be0c10c4827ba1e86b69ec47b53f7cbfaad9023","after":null,"ref":"refs/heads/ec-logger-doc","pushedAt":"2023-10-07T12:56:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"84573a7bef3e8da7cade430652582b5af8fbf8dc","after":"8be0c10c4827ba1e86b69ec47b53f7cbfaad9023","ref":"refs/heads/ec-logger-doc","pushedAt":"2023-10-07T12:43:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Add doc to explain how to migrate to the new BroadcastLogger:\n\n- This should make it easier for apps or libraries that were\n previously relying on the private API.\n Also took the opportunity to tweak the doc of the BroadcastLogger\n to mention what happens when calling a non-standard method.\n\n Fix #49494","shortMessageHtmlLink":"Add doc to explain how to migrate to the new BroadcastLogger:"}},{"before":null,"after":"84573a7bef3e8da7cade430652582b5af8fbf8dc","ref":"refs/heads/ec-logger-doc","pushedAt":"2023-10-06T17:09:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"9205ba6445b6b6ad248d205cafdbf5b64388ce88","after":"c577cc950b22fbfa07974efe5c22db4934b68ee8","ref":"refs/heads/ec-broadcast-prevent","pushedAt":"2023-10-02T22:21:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Handle case when `config.logger` is already a BroadcastLogger:\n\n- This commit avoids having `Rails.logger` be a two level nested\n BroadcastLogger. Side note that Nesting BroadcastLogger works and is\n supported by the implementation but we shouldn't do it in that\n case as it's confusing for the user.","shortMessageHtmlLink":"Handle case when config.logger is already a BroadcastLogger:"}},{"before":null,"after":"9205ba6445b6b6ad248d205cafdbf5b64388ce88","ref":"refs/heads/ec-broadcast-prevent","pushedAt":"2023-10-02T22:08:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"}},{"before":"b50cccab3e77928254d07e74a624f316d573af53","after":"40cb50e06e1bec28d8219b8af815a3b395f08088","ref":"refs/heads/ec-logger-fix","pushedAt":"2023-09-29T13:42:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Edouard-chin","name":"Edouard CHIN","path":"/Edouard-chin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8122246?s=80&v=4"},"commit":{"message":"Fix the BroadcastLogger being initialized too late:\n\n- An oversight of #48615 is that it changes the `Rails.logger` to be\n a broadcast logger after the app is booted. Anything referencing\n `Rails.logger` during the boot process will get a simple logger and\n ultimately resulting in logs not being broadcasted.\n\n For example `ActionController::Base.logger.info(\"abc\")` would\n just output logs in the `development.log` file, not on STDOUT.\n\n ----\n\n The only solution I could think of is to create a BroadcastLogger\n earlier at boot, and add logger to that broadcast when needed (instead\n of modiyfing the `Rails.logger` variable).","shortMessageHtmlLink":"Fix the BroadcastLogger being initialized too late:"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEBX0ORQA","startCursor":null,"endCursor":null}},"title":"Activity ยท Edouard-chin/rails"}