[{"id":"36988934540","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":185901023,"name":"open-telemetry/opentelemetry-js","url":"https://api.github.com/repos/open-telemetry/opentelemetry-js"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548","repository_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js","labels_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/labels{/name}","comments_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/comments","events_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/events","html_url":"https://github.com/open-telemetry/opentelemetry-js/issues/4548","id":2187471623,"node_id":"I_kwDOCxSf386CYisH","number":4548,"title":"Avoid the SemVer v0.x.x anti-pattern","user":{"login":"jaydenseric","id":1754873,"node_id":"MDQ6VXNlcjE3NTQ4NzM=","avatar_url":"https://avatars.githubusercontent.com/u/1754873?v=4","gravatar_id":"","url":"https://api.github.com/users/jaydenseric","html_url":"https://github.com/jaydenseric","followers_url":"https://api.github.com/users/jaydenseric/followers","following_url":"https://api.github.com/users/jaydenseric/following{/other_user}","gists_url":"https://api.github.com/users/jaydenseric/gists{/gist_id}","starred_url":"https://api.github.com/users/jaydenseric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaydenseric/subscriptions","organizations_url":"https://api.github.com/users/jaydenseric/orgs","repos_url":"https://api.github.com/users/jaydenseric/repos","events_url":"https://api.github.com/users/jaydenseric/events{/privacy}","received_events_url":"https://api.github.com/users/jaydenseric/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2024-03-15T00:00:44Z","updated_at":"2024-03-29T04:50:13Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"\r\n\r\n- [x] This only affects the JavaScript OpenTelemetry library\r\n- [ ] This may affect other libraries, but I would like to get opinions here first\r\n\r\nIt's an anti pattern to publish any package, for any reason, with a SemVer 0.x.x version. This is because according to SemVer v0.x.x releases are considered major breaking change releases until v1.x.x, so tooling like npm loses the ability to accept semver minor changes in dependencies with a version range specified with `^`.\r\n\r\nThere are only 2 \"upsides\" to v0.x.x:\r\n\r\n- The package author doesn't have to think about or declare if changes are major and breaking or minor and non-breaking. They can just throw a soup of changes out into the wild. This is really truly awful for anyone depending on your package to deal with though, so I don't consider this an \"upside\" for the ecosystem. Any time something is published, the package author should be carefully considering and what changes are breaking, and should reflect if there are breaking changes or not in a SemVer major increment, and should document those changes in the changelog and release notes so consumers can decide when and how to adopt the new version.\r\n- Users can look at the major version number, see it's 0, and have an expectation that the package is experimental. This is a completely worthless \"upside\" because while this is an extra signal in the version, the user has lost a far more important signal about if there are minor or major changes. Also, users can't trust the stability signal because there have been packages that reached stability a decade ago and are still on v0.x.x, and there are packages with a high major version number that are unstable nightmares riddled with hundreds of bugs. The package readme is the correct place to alert users if a package is experimental or stable.\r\n\r\nIn my work Node.js project right now, here is the result of running `npm ls @opentelemetry/instrumentation`:\r\n\r\n```\r\n@[redacted]@ /[redacted]\r\n├─┬ @azure/opentelemetry-instrumentation-azure-sdk@1.0.0-beta.5\r\n│ └── @opentelemetry/instrumentation@0.41.2\r\n├─┬ @opentelemetry/instrumentation-graphql@0.38.1\r\n│ └── @opentelemetry/instrumentation@0.49.1 deduped\r\n├─┬ @opentelemetry/instrumentation-http@0.49.1\r\n│ └── @opentelemetry/instrumentation@0.49.1 deduped\r\n├─┬ @opentelemetry/instrumentation-koa@0.38.0\r\n│ └── @opentelemetry/instrumentation@0.49.1 deduped\r\n└── @opentelemetry/instrumentation@0.49.1\r\n```\r\n\r\nNote that there are 2 versions of `@opentelemetry/instrumentation` installed; v0.41.2 and v0.49.1. This is through no fault of my own, or even really `@azure/opentelemetry-instrumentation-azure-sdk` installing the very old one. The fault is the v0.x.x of `@opentelemetry/instrumentation` preventing the declared dependency rage of `^0.49.1` from being able to pull in any releases with only minor changes:\r\n\r\nhttps://github.com/Azure/azure-sdk-for-js/blob/c6b79e3f1bfd106825ba1e99bbab192eaeea146f/sdk/instrumentation/opentelemetry-instrumentation-azure-sdk/package.json#L75\r\n\r\nIt's unreasonable to expect the `@azure/opentelemetry-instrumentation-azure-sdk` package maintainers to subscribe to alerts every time a `@opentelemetry/instrumentation` v0.x is published (how can they even really do that? It's a mono repo so subscribing in GitHub to releases would spam them with releases of other packages) and manually cut a new release adjusting their `@opentelemetry/instrumentation` dependency up a 0.x increment.\r\n\r\nNow as a consumer, I'm in the awkward position of having to remind (beg) third party packages to bump their v0.x dependency versions, or try to set some sort of package.json resolution overrides to force deduplication to one particular v0.x version. But because there is no signal in v0.x version numbers if there are breaking changes or only minor changes, you have to try to sift through mono repo release notes interspersed with other package release notes and if you can't find them or they aren't detailed enough to tell if updating is safe; reverse engineer the commits or code in each release to try to figure it out manually yourself if there are breaking change. But, let's say you realize there were breaking changes in the release. Is it safe to update? Maybe you have knowledge enough about your own project code to know that, but now you have to have expert knowledge of all the third party dependencies using it also to be able to know it's safe to force the package resolutions to the newer version for all node_modules.\r\n\r\nPlease, just never use v0.x.x. Just go straight to v1 and go from there. Can you please move all `@opentelemetry` packages to at least v1? Thanks.","reactions":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/reactions","total_count":2,"+1":2,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/comments/2026643313","html_url":"https://github.com/open-telemetry/opentelemetry-js/issues/4548#issuecomment-2026643313","issue_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548","id":2026643313,"node_id":"IC_kwDOCxSf3854zB9x","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-29T04:50:12Z","updated_at":"2024-03-29T04:50:12Z","author_association":"CONTRIBUTOR","body":"> as in you are expecting anyone to be using the package at all\r\n\r\nThis package is experimental. As in, you can experiment with it, provide feedback, etc.\r\n\r\nI'm having trouble deciphering your complaint.\r\n\r\n1. **0.x.y is the inappropriate version.** No, this is a non-stable package, and per SemVer any non-stable package should be 0.x.y.\r\n2. **It should be stable.** Brilliant suggestion.","reactions":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/comments/2026643313/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-29T04:50:14Z","org":{"id":49998002,"login":"open-telemetry","gravatar_id":"","url":"https://api.github.com/orgs/open-telemetry","avatar_url":"https://avatars.githubusercontent.com/u/49998002?"}},{"id":"36988297438","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/prettier/prettier/issues/16163","repository_url":"https://api.github.com/repos/prettier/prettier","labels_url":"https://api.github.com/repos/prettier/prettier/issues/16163/labels{/name}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/16163/comments","events_url":"https://api.github.com/repos/prettier/prettier/issues/16163/events","html_url":"https://github.com/prettier/prettier/pull/16163","id":2205144759,"node_id":"PR_kwDOBHn_e85qoBsh","number":16163,"title":"Implement multilineObject config option","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-03-25T08:10:44Z","updated_at":"2024-03-29T04:01:28Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/prettier/prettier/pulls/16163","html_url":"https://github.com/prettier/prettier/pull/16163","diff_url":"https://github.com/prettier/prettier/pull/16163.diff","patch_url":"https://github.com/prettier/prettier/pull/16163.patch","merged_at":null},"body":"## Description\r\n\r\nImplement `multilineObject` config option to control how multi-line JavaScript objects are formatted.\r\n\r\n### Choices\r\n\r\n#### \"preserve\"\r\n\r\nThis is the default. Objects are kept on multiple lines if there is a newline between the opening brace and the first property key. (I.e. the existing behavior of Prettier.)\r\n\r\n#### \"collapse\"\r\n\r\nObjects ignore whitespace-only formatting from the source, and are collapsed to a single line when possible.\r\n\r\n### Examples\r\n\r\n\r\nInput
\r\n\r\n```js\r\nconst obj1 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj2 = {\r\n name1: \"value1\", name2: \"value2\",\r\n};\r\n\r\nconst obj3 = {\r\n name1: \"value1\",\r\n name2: \"value2\", };\r\n\r\nconst obj4 = { name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj5 = { name1: \"value1\", name2: \"value2\", };\r\n```\r\n \r\n\r\n\r\n\"preserve\"
\r\n\r\n```js\r\nconst obj1 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj2 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj3 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj4 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj5 = { name1: \"value1\", name2: \"value2\" };\r\n```\r\n \r\n\r\n\r\n\"collapse\"
\r\n\r\n```js\r\nconst obj1 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj2 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj3 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj4 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj5 = { name1: \"value1\", name2: \"value2\" };\r\n```\r\n \r\n\r\n## Motivation\r\n\r\n> By far the biggest reason for adopting Prettier is to stop all the ongoing debates over styles.\r\n>\r\n> https://prettier.io/docs/en/why-prettier\r\n\r\nJohn submits a PR:\r\n\r\n```js\r\nconst buttonStyles = { background: \"#45da09\", borderRadius: \"4px\" };\r\n```\r\n\r\nJessica submits a PR:\r\n\r\n```js\r\nconst buttonStyles = {\r\n background: \"#45da09\",\r\n borderRadius: \"4px\"\r\n};\r\n```\r\n\r\nPrettier fails to prevent these two contributors from quibbling over the style. The project must publish a style guide to resolve the syntax debate of where and when to use multi-line objects. Moreover, to follow that guide for the single-line object cases, reviewers must now measure characters to see if the object can fit on a single-line without violating line length rules. (Which by itself is a complex task.)\r\n\r\nThis debate can be settled by using `--multiline-object=collapse`.\r\n\r\nThe pain of the above situation has been felt by many, many users who expect Prettier to solve this stylistic variation, and is a perennial source of consternation with complains of \"instability\" and \"inconsistency\":\r\n\r\n* #2068\r\n* #2685 \r\n* #5170\r\n* #5249\r\n* #5803 \r\n* #6424 \r\n* #6596 \r\n* #7794\r\n* #10757 \r\n* #11429 \r\n* #12541 \r\n* #14367\r\n* #11856.\r\n\r\nHowever, the original justifications for the semi-manual formatting still apply. Even though there are many who prefer to Prettier to be opinionated, it is a non-starter to impose whitespace agnostic object formatting on all Prettier users.\r\n\r\nThus, this change is the only path forward.\r\n\r\n## *Aren't we not supposed to add options?*\r\n\r\nNormally yes, but this option fundamentally differs from the usual proposals.\r\n\r\n### 1. This option makes Prettier *more opinionated*, not less.\r\n\r\nNormally, options are eschewed because they contradict Prettier's purpose to be an opinionated formatter.\r\n\r\nBut today, the single-line vs multi-line is configured not project-by-project, not even file-by-file, but object-literal-by-object-literal. That's literally the most flexibility/least opinionated possible. This change allows users to reign in that flexibility.\r\n\r\nUnlike other proposals for adding options, this *does not change the variety of styles that Prettier outputs.* It simply changes how those styles are configured (project-wide vs line-by-line).\r\n\r\n### 2. The current behavior is \"not a feature\"\r\n\r\n> The semi-manual formatting for object literals is in fact a workaround, not a feature.\r\n>\r\n> https://prettier.io/docs/en/rationale.html#%EF%B8%8F-a-note-on-formatting-reversibility\r\n\r\nThis option allows users to opt out of this non-feature workaround.\r\n\r\n### 3. Non-reversibility is significantly undesirable\r\n\r\n> What does reversible mean? Once an object literal becomes multiline, Prettier won’t collapse it back. If in Prettier-formatted code, we add a property to an object literal, run Prettier, then change our mind, remove the added property, and then run Prettier again, we might end up with a formatting not identical to the initial one. This useless change might even get included in a commit, which is exactly the kind of situation Prettier was created to prevent.\r\n>\r\n> https://prettier.io/docs/en/rationale.html#%EF%B8%8F-a-note-on-formatting-reversibility\r\n\r\nThis option allows users to make Prettier a reversible formatter.\r\n\r\n### 4. Prettier maintainers have invited this change\r\n\r\nhttps://github.com/prettier/prettier/issues/2068#issuecomment-910201889\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n- [X] I’ve added tests to confirm my change works.\r\n- [X] (If changing the API or CLI) I’ve documented the changes I’ve made (in the `docs/` directory).\r\n- [X] (If the change is user-facing) I’ve added my changes to `changelog_unreleased/*/XXXX.md` file following `changelog_unreleased/TEMPLATE.md`.\r\n- [X] I’ve read the [contributing guidelines](https://github.com/prettier/prettier/blob/main/CONTRIBUTING.md).\r\n\r\n\r\n\r\n**✨[Try the playground for this PR](https://prettier.io/playground-redirect)✨**","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/16163/reactions","total_count":13,"+1":5,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":5,"rocket":2,"eyes":1},"timeline_url":"https://api.github.com/repos/prettier/prettier/issues/16163/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2026602942","html_url":"https://github.com/prettier/prettier/pull/16163#issuecomment-2026602942","issue_url":"https://api.github.com/repos/prettier/prettier/issues/16163","id":2026602942,"node_id":"IC_kwDOBHn_e854y4G-","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-29T04:01:27Z","updated_at":"2024-03-29T04:01:27Z","author_association":"NONE","body":"Can I get some eyes on this?\r\n\r\n@fisker @sosukesuzuki @alexander-akait","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2026602942/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-29T04:01:28Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36960962362","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":740319245,"name":"redoapp/rules_javascript","url":"https://api.github.com/repos/redoapp/rules_javascript"},"payload":{"repository_id":740319245,"push_id":17743324908,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"42fa49c7bda8dea9139bac75745cdca993a98b7a","before":"93450a27cec84b2c0929f6430504b5c10632f644","commits":[{"sha":"42fa49c7bda8dea9139bac75745cdca993a98b7a","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Reduce npm.bzl size\n\nBy omitting empty properties","distinct":true,"url":"https://api.github.com/repos/redoapp/rules_javascript/commits/42fa49c7bda8dea9139bac75745cdca993a98b7a"}]},"public":true,"created_at":"2024-03-28T09:47:58Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36872279397","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/prettier/prettier/issues/16163","repository_url":"https://api.github.com/repos/prettier/prettier","labels_url":"https://api.github.com/repos/prettier/prettier/issues/16163/labels{/name}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/16163/comments","events_url":"https://api.github.com/repos/prettier/prettier/issues/16163/events","html_url":"https://github.com/prettier/prettier/pull/16163","id":2205144759,"node_id":"PR_kwDOBHn_e85qoBsh","number":16163,"title":"Implement multilineObject config option","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2024-03-25T08:10:44Z","updated_at":"2024-03-25T23:12:31Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/prettier/prettier/pulls/16163","html_url":"https://github.com/prettier/prettier/pull/16163","diff_url":"https://github.com/prettier/prettier/pull/16163.diff","patch_url":"https://github.com/prettier/prettier/pull/16163.patch","merged_at":null},"body":"## Description\r\n\r\nImplement `multilineObject` config option to control how multi-line JavaScript objects are formatted.\r\n\r\n### Choices\r\n\r\n#### \"preserve\"\r\n\r\nThis is the default. Objects are kept on multiple lines if there is a newline between the opening brace and the first property key. (I.e. the existing behavior of Prettier.)\r\n\r\n#### \"collapse\"\r\n\r\nObjects ignore whitespace-only formatting from the source, and are collapsed to a single line when possible.\r\n\r\n### Examples\r\n\r\n\r\nInput
\r\n\r\n```js\r\nconst obj1 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj2 = {\r\n name1: \"value1\", name2: \"value2\",\r\n};\r\n\r\nconst obj3 = {\r\n name1: \"value1\",\r\n name2: \"value2\", };\r\n\r\nconst obj4 = { name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj5 = { name1: \"value1\", name2: \"value2\", };\r\n```\r\n \r\n\r\n\r\n\"preserve\"
\r\n\r\n```js\r\nconst obj1 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj2 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj3 = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n\r\nconst obj4 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj5 = { name1: \"value1\", name2: \"value2\" };\r\n```\r\n \r\n\r\n\r\n\"collapse\"
\r\n\r\n```js\r\nconst obj1 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj2 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj3 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj4 = { name1: \"value1\", name2: \"value2\" };\r\n\r\nconst obj5 = { name1: \"value1\", name2: \"value2\" };\r\n```\r\n \r\n\r\n## Motivation\r\n\r\n> By far the biggest reason for adopting Prettier is to stop all the ongoing debates over styles.\r\n>\r\n> https://prettier.io/docs/en/why-prettier\r\n\r\nJohn submits a PR:\r\n\r\n```js\r\nconst buttonStyles = { background: \"#45da09\", borderRadius: \"4px\" };\r\n```\r\n\r\nJessica submits a PR:\r\n\r\n```js\r\nconst buttonStyles = {\r\n background: \"#45da09\",\r\n borderRadius: \"4px\"\r\n};\r\n```\r\n\r\nPrettier fails to prevent these two contributors from quibbling over the style. The project must publish a style guide to resolve the syntax debate of where and when to use multi-line objects. Moreover, to follow that guide for the single-line object cases, reviewers must now measure characters to see if the object can fit on a single-line without violating line length rules. (Which by itself is a complex task.)\r\n\r\nThis debate can be settled by using `--multiline-object=collapse`.\r\n\r\nThe pain of the above situation has been felt by many, many users who expect Prettier to solve this stylistic variation, and is a perennial source of consternation with complains of \"instability\" and \"inconsistency\":\r\n\r\n* #2068\r\n* #2685 \r\n* #5170\r\n* #5249\r\n* #5803 \r\n* #6424 \r\n* #6596 \r\n* #7794\r\n* #10757 \r\n* #11429 \r\n* #12541 \r\n* #14367\r\n* #11856.\r\n\r\nHowever, the original justifications for the semi-manual formatting still apply. Even though there are many who prefer to Prettier to be opinionated, it is a non-starter to impose whitespace agnostic object formatting on all Prettier users.\r\n\r\nThus, this change is the only path forward.\r\n\r\n## *Aren't we not supposed to add options?*\r\n\r\nNormally yes, but this option fundamentally differs from the usual proposals.\r\n\r\n### 1. This option makes Prettier *more opinionated*, not less.\r\n\r\nNormally, options are eschewed because they contradict Prettier's purpose to be an opinionated formatter.\r\n\r\nBut today, the single-line vs multi-line is configured not project-by-project, not even file-by-file, but object-literal-by-object-literal. That's literally the most flexibility/least opinionated possible. This change allows users to reign in that flexibility.\r\n\r\nUnlike other proposals for adding options, this *does not change the variety of styles that Prettier outputs.* It simply changes how those styles are configured (project-wide vs line-by-line).\r\n\r\n### 2. The current behavior is \"not a feature\"\r\n\r\n> The semi-manual formatting for object literals is in fact a workaround, not a feature.\r\n>\r\n> https://prettier.io/docs/en/rationale.html#%EF%B8%8F-a-note-on-formatting-reversibility\r\n\r\nThis option allows users to opt out of this non-feature workaround.\r\n\r\n### 3. Non-reversibility is significantly undesirable\r\n\r\n> What does reversible mean? Once an object literal becomes multiline, Prettier won’t collapse it back. If in Prettier-formatted code, we add a property to an object literal, run Prettier, then change our mind, remove the added property, and then run Prettier again, we might end up with a formatting not identical to the initial one. This useless change might even get included in a commit, which is exactly the kind of situation Prettier was created to prevent.\r\n>\r\n> https://prettier.io/docs/en/rationale.html#%EF%B8%8F-a-note-on-formatting-reversibility\r\n\r\nThis option allows users to make Prettier a reversible formatter.\r\n\r\n### 4. Prettier maintainers have invited this change\r\n\r\nhttps://github.com/prettier/prettier/issues/2068#issuecomment-910201889\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n- [X] I’ve added tests to confirm my change works.\r\n- [X] (If changing the API or CLI) I’ve documented the changes I’ve made (in the `docs/` directory).\r\n- [X] (If the change is user-facing) I’ve added my changes to `changelog_unreleased/*/XXXX.md` file following `changelog_unreleased/TEMPLATE.md`.\r\n- [X] I’ve read the [contributing guidelines](https://github.com/prettier/prettier/blob/main/CONTRIBUTING.md).\r\n\r\n\r\n\r\n**✨[Try the playground for this PR](https://prettier.io/playground-redirect)✨**","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/16163/reactions","total_count":7,"+1":3,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":1,"eyes":1},"timeline_url":"https://api.github.com/repos/prettier/prettier/issues/16163/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2019084553","html_url":"https://github.com/prettier/prettier/pull/16163#issuecomment-2019084553","issue_url":"https://api.github.com/repos/prettier/prettier/issues/16163","id":2019084553,"node_id":"IC_kwDOBHn_e854WMkJ","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-25T23:12:30Z","updated_at":"2024-03-25T23:12:30Z","author_association":"NONE","body":"@jaydenseric that hypothetical option would be `\"expand\"`.\r\n\r\nIt would not be without precedence (`singleAttributePerLine`, introduced version 2.6.0).\r\n\r\nHowever, I do not believe this to be desirable for short objects.","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2019084553/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-25T23:12:31Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36862556134","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":777096900,"name":"pauldraper/prettier","url":"https://api.github.com/repos/pauldraper/prettier"},"payload":{"repository_id":777096900,"push_id":17696776315,"size":1,"distinct_size":1,"ref":"refs/heads/pauldraper/multiline-object","head":"7c3754c56ff84078d65d8d29d8891d80f8ddea1a","before":"f84d2508f53029df4c377d779956fe3206e8af1e","commits":[{"sha":"7c3754c56ff84078d65d8d29d8891d80f8ddea1a","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Implement multilineObject config option\n\nFixes #2068","distinct":true,"url":"https://api.github.com/repos/pauldraper/prettier/commits/7c3754c56ff84078d65d8d29d8891d80f8ddea1a"}]},"public":true,"created_at":"2024-03-25T17:03:46Z"},{"id":"36858952988","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/prettier/prettier/issues/2068","repository_url":"https://api.github.com/repos/prettier/prettier","labels_url":"https://api.github.com/repos/prettier/prettier/issues/2068/labels{/name}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/2068/comments","events_url":"https://api.github.com/repos/prettier/prettier/issues/2068/events","html_url":"https://github.com/prettier/prettier/issues/2068","id":234672529,"node_id":"MDU6SXNzdWUyMzQ2NzI1Mjk=","number":2068,"title":"Option for ignoring original formatting 100%","user":{"login":"ccorcos","id":1794527,"node_id":"MDQ6VXNlcjE3OTQ1Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1794527?v=4","gravatar_id":"","url":"https://api.github.com/users/ccorcos","html_url":"https://github.com/ccorcos","followers_url":"https://api.github.com/users/ccorcos/followers","following_url":"https://api.github.com/users/ccorcos/following{/other_user}","gists_url":"https://api.github.com/users/ccorcos/gists{/gist_id}","starred_url":"https://api.github.com/users/ccorcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccorcos/subscriptions","organizations_url":"https://api.github.com/users/ccorcos/orgs","repos_url":"https://api.github.com/users/ccorcos/repos","events_url":"https://api.github.com/users/ccorcos/events{/privacy}","received_events_url":"https://api.github.com/users/ccorcos/received_events","type":"User","site_admin":false},"labels":[{"id":550888572,"node_id":"MDU6TGFiZWw1NTA4ODg1NzI=","url":"https://api.github.com/repos/prettier/prettier/labels/type:option%20request","name":"type:option request","color":"0052cc","default":false,"description":"Issues requesting a new option. We generally don’t accept these unless there is technical necessity."},{"id":707750225,"node_id":"MDU6TGFiZWw3MDc3NTAyMjU=","url":"https://api.github.com/repos/prettier/prettier/labels/difficulty:hard","name":"difficulty:hard","color":"0e8a16","default":false,"description":"Issues that might take an entire weekend, or require a tough decision to fix"}],"state":"open","locked":false,"assignee":{"login":"azz","id":1297597,"node_id":"MDQ6VXNlcjEyOTc1OTc=","avatar_url":"https://avatars.githubusercontent.com/u/1297597?v=4","gravatar_id":"","url":"https://api.github.com/users/azz","html_url":"https://github.com/azz","followers_url":"https://api.github.com/users/azz/followers","following_url":"https://api.github.com/users/azz/following{/other_user}","gists_url":"https://api.github.com/users/azz/gists{/gist_id}","starred_url":"https://api.github.com/users/azz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azz/subscriptions","organizations_url":"https://api.github.com/users/azz/orgs","repos_url":"https://api.github.com/users/azz/repos","events_url":"https://api.github.com/users/azz/events{/privacy}","received_events_url":"https://api.github.com/users/azz/received_events","type":"User","site_admin":false},"assignees":[{"login":"azz","id":1297597,"node_id":"MDQ6VXNlcjEyOTc1OTc=","avatar_url":"https://avatars.githubusercontent.com/u/1297597?v=4","gravatar_id":"","url":"https://api.github.com/users/azz","html_url":"https://github.com/azz","followers_url":"https://api.github.com/users/azz/followers","following_url":"https://api.github.com/users/azz/following{/other_user}","gists_url":"https://api.github.com/users/azz/gists{/gist_id}","starred_url":"https://api.github.com/users/azz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azz/subscriptions","organizations_url":"https://api.github.com/users/azz/orgs","repos_url":"https://api.github.com/users/azz/repos","events_url":"https://api.github.com/users/azz/events{/privacy}","received_events_url":"https://api.github.com/users/azz/received_events","type":"User","site_admin":false}],"milestone":null,"comments":31,"created_at":"2017-06-08T22:21:59Z","updated_at":"2024-03-25T15:20:18Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Edit by @lydell: Prettier currently keeps multiline object literals multiline even if they fit in a single line, and does special things to blank lines: removes some, collapses consecutive blank lines into one and never adds blank lines. This is because the majority of people seem to want this level of control since we haven’t found a super good heuristic for printing those things. Some people prefer a 100% uniform printing, though, that _completely_ ignores original formatting, even if it sometimes results in “uglier” code. We should discuss this.\r\n\r\nOriginal post:\r\n\r\nIs it possible to have a strict option that disambiguates whitespace and always prints out the same so long as the AST is the same? I'm running into some weird issues where lines wrap and then don't unwrap when they are under the line-length limit. This would greatly help with some of my merge conflicts right now :)\r\n\r\nP.S. I'm using typescript.\r\n\r\nThanks","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/2068/reactions","total_count":73,"+1":59,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":7,"rocket":3,"eyes":3},"timeline_url":"https://api.github.com/repos/prettier/prettier/issues/2068/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2018257527","html_url":"https://github.com/prettier/prettier/issues/2068#issuecomment-2018257527","issue_url":"https://api.github.com/repos/prettier/prettier/issues/2068","id":2018257527,"node_id":"IC_kwDOBHn_e854TCp3","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-25T15:20:17Z","updated_at":"2024-03-25T15:20:17Z","author_association":"NONE","body":"I've created PR #16163.","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2018257527/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-25T15:20:18Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36845562956","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":777096900,"name":"pauldraper/prettier","url":"https://api.github.com/repos/pauldraper/prettier"},"payload":{"repository_id":777096900,"push_id":17688901038,"size":1,"distinct_size":1,"ref":"refs/heads/pauldraper/multiline-object","head":"f84d2508f53029df4c377d779956fe3206e8af1e","before":"f55f23dacda22ee7c021695c59e7d93dc39dd75b","commits":[{"sha":"f84d2508f53029df4c377d779956fe3206e8af1e","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Implement multilineObject config option\n\nFixes #2068","distinct":true,"url":"https://api.github.com/repos/pauldraper/prettier/commits/f84d2508f53029df4c377d779956fe3206e8af1e"}]},"public":true,"created_at":"2024-03-25T08:18:50Z"},{"id":"36845348558","type":"PullRequestEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"opened","number":16163,"pull_request":{"url":"https://api.github.com/repos/prettier/prettier/pulls/16163","id":1788877601,"node_id":"PR_kwDOBHn_e85qoBsh","html_url":"https://github.com/prettier/prettier/pull/16163","diff_url":"https://github.com/prettier/prettier/pull/16163.diff","patch_url":"https://github.com/prettier/prettier/pull/16163.patch","issue_url":"https://api.github.com/repos/prettier/prettier/issues/16163","number":16163,"state":"open","locked":false,"title":"Implement multilineObject config option","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"body":"## Description\r\n\r\nImplement `multilineObject` config option to control how multi-line JavaScript objects are formatted.\r\n\r\n### \"preserve\"\r\n\r\nThis is the default option. Objects are kept on multiple lines if there is a newline between the opening brace and the first property key. (This is the existing behavior of Prettier.)\r\n\r\n\r\nExamples
\r\n\r\nThese are kept on multiple lines:\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n```\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\", name2: \"value2\",\r\n};\r\n```\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\",\r\n name2: \"value2\", };\r\n```\r\n\r\nThese are collapsed to a single line:\r\n\r\n```js\r\nconst obj = { name1: \"value1\", name2: \"value2\", };\r\n```\r\n\r\n```js\r\nconst obj = { name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n```\r\n \r\n\r\n### \"collapse\"\r\n\r\nObjects are collapsed to a single line when possible.\r\n\r\n\r\nExamples
\r\n\r\nAll of the following are collapsed to a single line:\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n```\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\", name2: \"value2\",\r\n};\r\n```\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\",\r\n name2: \"value2\", };\r\n```\r\n\r\n```js\r\nconst obj = { name1: \"value1\", name2: \"value2\", };\r\n```\r\n\r\n```js\r\nconst obj = { name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n```\r\n \r\n\r\n## Motivation\r\n\r\n> By far the biggest reason for adopting Prettier is to stop all the ongoing debates over styles.\r\n>\r\n> https://prettier.io/docs/en/why-prettier\r\n\r\nJohn submits a PR:\r\n\r\n```js\r\nconst buttonStyles = { background: \"#45da09\", borderRadius: \"4px\" };\r\n```\r\n\r\nJessica submits a PR:\r\n\r\n```js\r\nconst buttonStyles = {\r\n background: \"#45da09\",\r\n borderRadius: \"4px\"\r\n};\r\n```\r\n\r\nPrettier fails to prevent these two contributors from quibbling over the style. The project must publish a style guide to resolve the syntax debate of where and when to use multi-line objects. Moreover, to follow that guide for the single-line object cases, reviewers must now measure characters to see if the object can fit on a single-line without violating line length rules. (Which by itself is a complex tasks.)\r\n\r\nThis debate can be settled by using `--multiline-object=collapse`.\r\n\r\nThe pain of the above situation has been felt independently by many users of Prettier, see\r\n\r\n* #2068\r\n* #7794\r\n* #10757 \r\n* #11429 \r\n* #12541 \r\n* #14367\r\n* #11856.\r\n\r\nHowever, the justifications for the semi-manual formatting still apply. It is a non-starter to impose whitespace agnostic object formatting on all Prettier users.\r\n\r\nThus, this change is the only path forward.\r\n\r\n### *Aren't we not supposed to add options?*\r\n\r\n#### This make Prettier *more opinionated*, not less.\r\n\r\nOptions are eschewed *because they contradict Prettier's goal as an opinionated formatter.*\r\n\r\nToday, the single-line vs multi-line is configured not project-by-project, not even file-by-file, but object-literal-by-object-literal. That's literally the most flexibility possible.\r\n\r\nThis change reigns in that flexibility (or at least, can).\r\n\r\nUnlike other proposals for adding options, the # of styles that Prettier can output does not change.\r\n\r\n#### The current behavior is \"not a feature\"\r\n\r\n> The semi-manual formatting for object literals is in fact a workaround, not a feature.\r\n>\r\n> https://prettier.io/docs/en/rationale.html#%EF%B8%8F-a-note-on-formatting-reversibility\r\n\r\n#### Non-reversibility is significantly undesirable\r\n\r\n> What does reversible mean? Once an object literal becomes multiline, Prettier won’t collapse it back. If in Prettier-formatted code, we add a property to an object literal, run Prettier, then change our mind, remove the added property, and then run Prettier again, we might end up with a formatting not identical to the initial one. This useless change might even get included in a commit, which is exactly the kind of situation Prettier was created to prevent.\r\n>\r\n> https://prettier.io/docs/en/rationale.html#%EF%B8%8F-a-note-on-formatting-reversibility\r\n\r\n#### Prettier maintainers have invited this change\r\n\r\nhttps://github.com/prettier/prettier/issues/2068#issuecomment-910201889\r\n\r\n## Checklist\r\n\r\n\r\n\r\n\r\n- [X] I’ve added tests to confirm my change works.\r\n- [X] (If changing the API or CLI) I’ve documented the changes I’ve made (in the `docs/` directory).\r\n- [ ] (If the change is user-facing) I’ve added my changes to `changelog_unreleased/*/XXXX.md` file following `changelog_unreleased/TEMPLATE.md`.\r\n- [X] I’ve read the [contributing guidelines](https://github.com/prettier/prettier/blob/main/CONTRIBUTING.md).\r\n\r\n\r\n\r\n**✨[Try the playground for this PR](https://prettier.io/playground-redirect)✨**\r\n","created_at":"2024-03-25T08:10:44Z","updated_at":"2024-03-25T08:10:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/prettier/prettier/pulls/16163/commits","review_comments_url":"https://api.github.com/repos/prettier/prettier/pulls/16163/comments","review_comment_url":"https://api.github.com/repos/prettier/prettier/pulls/comments{/number}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/16163/comments","statuses_url":"https://api.github.com/repos/prettier/prettier/statuses/f55f23dacda22ee7c021695c59e7d93dc39dd75b","head":{"label":"pauldraper:pauldraper/multiline-object","ref":"pauldraper/multiline-object","sha":"f55f23dacda22ee7c021695c59e7d93dc39dd75b","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"repo":{"id":777096900,"node_id":"R_kgDOLlGOxA","name":"prettier","full_name":"pauldraper/prettier","private":false,"owner":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pauldraper/prettier","description":"Prettier is an opinionated code formatter.","fork":true,"url":"https://api.github.com/repos/pauldraper/prettier","forks_url":"https://api.github.com/repos/pauldraper/prettier/forks","keys_url":"https://api.github.com/repos/pauldraper/prettier/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pauldraper/prettier/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pauldraper/prettier/teams","hooks_url":"https://api.github.com/repos/pauldraper/prettier/hooks","issue_events_url":"https://api.github.com/repos/pauldraper/prettier/issues/events{/number}","events_url":"https://api.github.com/repos/pauldraper/prettier/events","assignees_url":"https://api.github.com/repos/pauldraper/prettier/assignees{/user}","branches_url":"https://api.github.com/repos/pauldraper/prettier/branches{/branch}","tags_url":"https://api.github.com/repos/pauldraper/prettier/tags","blobs_url":"https://api.github.com/repos/pauldraper/prettier/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pauldraper/prettier/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pauldraper/prettier/git/refs{/sha}","trees_url":"https://api.github.com/repos/pauldraper/prettier/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pauldraper/prettier/statuses/{sha}","languages_url":"https://api.github.com/repos/pauldraper/prettier/languages","stargazers_url":"https://api.github.com/repos/pauldraper/prettier/stargazers","contributors_url":"https://api.github.com/repos/pauldraper/prettier/contributors","subscribers_url":"https://api.github.com/repos/pauldraper/prettier/subscribers","subscription_url":"https://api.github.com/repos/pauldraper/prettier/subscription","commits_url":"https://api.github.com/repos/pauldraper/prettier/commits{/sha}","git_commits_url":"https://api.github.com/repos/pauldraper/prettier/git/commits{/sha}","comments_url":"https://api.github.com/repos/pauldraper/prettier/comments{/number}","issue_comment_url":"https://api.github.com/repos/pauldraper/prettier/issues/comments{/number}","contents_url":"https://api.github.com/repos/pauldraper/prettier/contents/{+path}","compare_url":"https://api.github.com/repos/pauldraper/prettier/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pauldraper/prettier/merges","archive_url":"https://api.github.com/repos/pauldraper/prettier/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pauldraper/prettier/downloads","issues_url":"https://api.github.com/repos/pauldraper/prettier/issues{/number}","pulls_url":"https://api.github.com/repos/pauldraper/prettier/pulls{/number}","milestones_url":"https://api.github.com/repos/pauldraper/prettier/milestones{/number}","notifications_url":"https://api.github.com/repos/pauldraper/prettier/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pauldraper/prettier/labels{/name}","releases_url":"https://api.github.com/repos/pauldraper/prettier/releases{/id}","deployments_url":"https://api.github.com/repos/pauldraper/prettier/deployments","created_at":"2024-03-25T07:36:30Z","updated_at":"2024-03-25T07:36:30Z","pushed_at":"2024-03-25T07:37:03Z","git_url":"git://github.com/pauldraper/prettier.git","ssh_url":"git@github.com:pauldraper/prettier.git","clone_url":"https://github.com/pauldraper/prettier.git","svn_url":"https://github.com/pauldraper/prettier","homepage":"https://prettier.io","size":118324,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main"}},"base":{"label":"prettier:main","ref":"main","sha":"d970deed6b6cabe21fdb35249265d766932b5718","user":{"login":"prettier","id":25822731,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI1ODIyNzMx","avatar_url":"https://avatars.githubusercontent.com/u/25822731?v=4","gravatar_id":"","url":"https://api.github.com/users/prettier","html_url":"https://github.com/prettier","followers_url":"https://api.github.com/users/prettier/followers","following_url":"https://api.github.com/users/prettier/following{/other_user}","gists_url":"https://api.github.com/users/prettier/gists{/gist_id}","starred_url":"https://api.github.com/users/prettier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prettier/subscriptions","organizations_url":"https://api.github.com/users/prettier/orgs","repos_url":"https://api.github.com/users/prettier/repos","events_url":"https://api.github.com/users/prettier/events{/privacy}","received_events_url":"https://api.github.com/users/prettier/received_events","type":"Organization","site_admin":false},"repo":{"id":75104123,"node_id":"MDEwOlJlcG9zaXRvcnk3NTEwNDEyMw==","name":"prettier","full_name":"prettier/prettier","private":false,"owner":{"login":"prettier","id":25822731,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI1ODIyNzMx","avatar_url":"https://avatars.githubusercontent.com/u/25822731?v=4","gravatar_id":"","url":"https://api.github.com/users/prettier","html_url":"https://github.com/prettier","followers_url":"https://api.github.com/users/prettier/followers","following_url":"https://api.github.com/users/prettier/following{/other_user}","gists_url":"https://api.github.com/users/prettier/gists{/gist_id}","starred_url":"https://api.github.com/users/prettier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prettier/subscriptions","organizations_url":"https://api.github.com/users/prettier/orgs","repos_url":"https://api.github.com/users/prettier/repos","events_url":"https://api.github.com/users/prettier/events{/privacy}","received_events_url":"https://api.github.com/users/prettier/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/prettier/prettier","description":"Prettier is an opinionated code formatter.","fork":false,"url":"https://api.github.com/repos/prettier/prettier","forks_url":"https://api.github.com/repos/prettier/prettier/forks","keys_url":"https://api.github.com/repos/prettier/prettier/keys{/key_id}","collaborators_url":"https://api.github.com/repos/prettier/prettier/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/prettier/prettier/teams","hooks_url":"https://api.github.com/repos/prettier/prettier/hooks","issue_events_url":"https://api.github.com/repos/prettier/prettier/issues/events{/number}","events_url":"https://api.github.com/repos/prettier/prettier/events","assignees_url":"https://api.github.com/repos/prettier/prettier/assignees{/user}","branches_url":"https://api.github.com/repos/prettier/prettier/branches{/branch}","tags_url":"https://api.github.com/repos/prettier/prettier/tags","blobs_url":"https://api.github.com/repos/prettier/prettier/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/prettier/prettier/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/prettier/prettier/git/refs{/sha}","trees_url":"https://api.github.com/repos/prettier/prettier/git/trees{/sha}","statuses_url":"https://api.github.com/repos/prettier/prettier/statuses/{sha}","languages_url":"https://api.github.com/repos/prettier/prettier/languages","stargazers_url":"https://api.github.com/repos/prettier/prettier/stargazers","contributors_url":"https://api.github.com/repos/prettier/prettier/contributors","subscribers_url":"https://api.github.com/repos/prettier/prettier/subscribers","subscription_url":"https://api.github.com/repos/prettier/prettier/subscription","commits_url":"https://api.github.com/repos/prettier/prettier/commits{/sha}","git_commits_url":"https://api.github.com/repos/prettier/prettier/git/commits{/sha}","comments_url":"https://api.github.com/repos/prettier/prettier/comments{/number}","issue_comment_url":"https://api.github.com/repos/prettier/prettier/issues/comments{/number}","contents_url":"https://api.github.com/repos/prettier/prettier/contents/{+path}","compare_url":"https://api.github.com/repos/prettier/prettier/compare/{base}...{head}","merges_url":"https://api.github.com/repos/prettier/prettier/merges","archive_url":"https://api.github.com/repos/prettier/prettier/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/prettier/prettier/downloads","issues_url":"https://api.github.com/repos/prettier/prettier/issues{/number}","pulls_url":"https://api.github.com/repos/prettier/prettier/pulls{/number}","milestones_url":"https://api.github.com/repos/prettier/prettier/milestones{/number}","notifications_url":"https://api.github.com/repos/prettier/prettier/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/prettier/prettier/labels{/name}","releases_url":"https://api.github.com/repos/prettier/prettier/releases{/id}","deployments_url":"https://api.github.com/repos/prettier/prettier/deployments","created_at":"2016-11-29T17:13:37Z","updated_at":"2024-03-25T05:42:21Z","pushed_at":"2024-03-25T08:10:45Z","git_url":"git://github.com/prettier/prettier.git","ssh_url":"git@github.com:prettier/prettier.git","clone_url":"https://github.com/prettier/prettier.git","svn_url":"https://github.com/prettier/prettier","homepage":"https://prettier.io","size":118324,"stargazers_count":47979,"watchers_count":47979,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":4083,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1337,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["angular","ast","css","flow","formatter","graphql","html","javascript","json","jsx","less","markdown","prettier","printer","scss","typescript","vue","yaml"],"visibility":"public","forks":4083,"open_issues":1337,"watchers":47979,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/prettier/prettier/pulls/16163"},"html":{"href":"https://github.com/prettier/prettier/pull/16163"},"issue":{"href":"https://api.github.com/repos/prettier/prettier/issues/16163"},"comments":{"href":"https://api.github.com/repos/prettier/prettier/issues/16163/comments"},"review_comments":{"href":"https://api.github.com/repos/prettier/prettier/pulls/16163/comments"},"review_comment":{"href":"https://api.github.com/repos/prettier/prettier/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/prettier/prettier/pulls/16163/commits"},"statuses":{"href":"https://api.github.com/repos/prettier/prettier/statuses/f55f23dacda22ee7c021695c59e7d93dc39dd75b"}},"author_association":"NONE","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":235,"deletions":11,"changed_files":16}},"public":true,"created_at":"2024-03-25T08:10:45Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36844550119","type":"CreateEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":777096900,"name":"pauldraper/prettier","url":"https://api.github.com/repos/pauldraper/prettier"},"payload":{"ref":"pauldraper/multiline-object","ref_type":"branch","master_branch":"main","description":"Prettier is an opinionated code formatter.","pusher_type":"user"},"public":true,"created_at":"2024-03-25T07:37:04Z"},{"id":"36844537917","type":"ForkEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"forkee":{"id":777096900,"node_id":"R_kgDOLlGOxA","name":"prettier","full_name":"pauldraper/prettier","private":false,"owner":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pauldraper/prettier","description":"Prettier is an opinionated code formatter.","fork":true,"url":"https://api.github.com/repos/pauldraper/prettier","forks_url":"https://api.github.com/repos/pauldraper/prettier/forks","keys_url":"https://api.github.com/repos/pauldraper/prettier/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pauldraper/prettier/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pauldraper/prettier/teams","hooks_url":"https://api.github.com/repos/pauldraper/prettier/hooks","issue_events_url":"https://api.github.com/repos/pauldraper/prettier/issues/events{/number}","events_url":"https://api.github.com/repos/pauldraper/prettier/events","assignees_url":"https://api.github.com/repos/pauldraper/prettier/assignees{/user}","branches_url":"https://api.github.com/repos/pauldraper/prettier/branches{/branch}","tags_url":"https://api.github.com/repos/pauldraper/prettier/tags","blobs_url":"https://api.github.com/repos/pauldraper/prettier/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pauldraper/prettier/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pauldraper/prettier/git/refs{/sha}","trees_url":"https://api.github.com/repos/pauldraper/prettier/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pauldraper/prettier/statuses/{sha}","languages_url":"https://api.github.com/repos/pauldraper/prettier/languages","stargazers_url":"https://api.github.com/repos/pauldraper/prettier/stargazers","contributors_url":"https://api.github.com/repos/pauldraper/prettier/contributors","subscribers_url":"https://api.github.com/repos/pauldraper/prettier/subscribers","subscription_url":"https://api.github.com/repos/pauldraper/prettier/subscription","commits_url":"https://api.github.com/repos/pauldraper/prettier/commits{/sha}","git_commits_url":"https://api.github.com/repos/pauldraper/prettier/git/commits{/sha}","comments_url":"https://api.github.com/repos/pauldraper/prettier/comments{/number}","issue_comment_url":"https://api.github.com/repos/pauldraper/prettier/issues/comments{/number}","contents_url":"https://api.github.com/repos/pauldraper/prettier/contents/{+path}","compare_url":"https://api.github.com/repos/pauldraper/prettier/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pauldraper/prettier/merges","archive_url":"https://api.github.com/repos/pauldraper/prettier/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pauldraper/prettier/downloads","issues_url":"https://api.github.com/repos/pauldraper/prettier/issues{/number}","pulls_url":"https://api.github.com/repos/pauldraper/prettier/pulls{/number}","milestones_url":"https://api.github.com/repos/pauldraper/prettier/milestones{/number}","notifications_url":"https://api.github.com/repos/pauldraper/prettier/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pauldraper/prettier/labels{/name}","releases_url":"https://api.github.com/repos/pauldraper/prettier/releases{/id}","deployments_url":"https://api.github.com/repos/pauldraper/prettier/deployments","created_at":"2024-03-25T07:36:30Z","updated_at":"2024-03-25T07:36:30Z","pushed_at":"2024-03-24T14:00:34Z","git_url":"git://github.com/pauldraper/prettier.git","ssh_url":"git@github.com:pauldraper/prettier.git","clone_url":"https://github.com/pauldraper/prettier.git","svn_url":"https://github.com/pauldraper/prettier","homepage":"https://prettier.io","size":118324,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","public":true}},"public":true,"created_at":"2024-03-25T07:36:31Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36838517958","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":740319245,"name":"redoapp/rules_javascript","url":"https://api.github.com/repos/redoapp/rules_javascript"},"payload":{"repository_id":740319245,"push_id":17685414665,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"93450a27cec84b2c0929f6430504b5c10632f644","before":"72c7bcf3009c36c556f5b6dca2cb2b76dd327609","commits":[{"sha":"93450a27cec84b2c0929f6430504b5c10632f644","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Support overrides in Prettier configuration","distinct":true,"url":"https://api.github.com/repos/redoapp/rules_javascript/commits/93450a27cec84b2c0929f6430504b5c10632f644"}]},"public":true,"created_at":"2024-03-25T01:19:56Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36837840806","type":"WatchEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":386190897,"name":"namnm/eslint-plugin-sort-keys","url":"https://api.github.com/repos/namnm/eslint-plugin-sort-keys"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-25T00:25:07Z"},{"id":"36835535371","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/prettier/prettier/issues/2068","repository_url":"https://api.github.com/repos/prettier/prettier","labels_url":"https://api.github.com/repos/prettier/prettier/issues/2068/labels{/name}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/2068/comments","events_url":"https://api.github.com/repos/prettier/prettier/issues/2068/events","html_url":"https://github.com/prettier/prettier/issues/2068","id":234672529,"node_id":"MDU6SXNzdWUyMzQ2NzI1Mjk=","number":2068,"title":"Option for ignoring original formatting 100%","user":{"login":"ccorcos","id":1794527,"node_id":"MDQ6VXNlcjE3OTQ1Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1794527?v=4","gravatar_id":"","url":"https://api.github.com/users/ccorcos","html_url":"https://github.com/ccorcos","followers_url":"https://api.github.com/users/ccorcos/followers","following_url":"https://api.github.com/users/ccorcos/following{/other_user}","gists_url":"https://api.github.com/users/ccorcos/gists{/gist_id}","starred_url":"https://api.github.com/users/ccorcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccorcos/subscriptions","organizations_url":"https://api.github.com/users/ccorcos/orgs","repos_url":"https://api.github.com/users/ccorcos/repos","events_url":"https://api.github.com/users/ccorcos/events{/privacy}","received_events_url":"https://api.github.com/users/ccorcos/received_events","type":"User","site_admin":false},"labels":[{"id":550888572,"node_id":"MDU6TGFiZWw1NTA4ODg1NzI=","url":"https://api.github.com/repos/prettier/prettier/labels/type:option%20request","name":"type:option request","color":"0052cc","default":false,"description":"Issues requesting a new option. We generally don’t accept these unless there is technical necessity."},{"id":707750225,"node_id":"MDU6TGFiZWw3MDc3NTAyMjU=","url":"https://api.github.com/repos/prettier/prettier/labels/difficulty:hard","name":"difficulty:hard","color":"0e8a16","default":false,"description":"Issues that might take an entire weekend, or require a tough decision to fix"}],"state":"open","locked":false,"assignee":{"login":"azz","id":1297597,"node_id":"MDQ6VXNlcjEyOTc1OTc=","avatar_url":"https://avatars.githubusercontent.com/u/1297597?v=4","gravatar_id":"","url":"https://api.github.com/users/azz","html_url":"https://github.com/azz","followers_url":"https://api.github.com/users/azz/followers","following_url":"https://api.github.com/users/azz/following{/other_user}","gists_url":"https://api.github.com/users/azz/gists{/gist_id}","starred_url":"https://api.github.com/users/azz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azz/subscriptions","organizations_url":"https://api.github.com/users/azz/orgs","repos_url":"https://api.github.com/users/azz/repos","events_url":"https://api.github.com/users/azz/events{/privacy}","received_events_url":"https://api.github.com/users/azz/received_events","type":"User","site_admin":false},"assignees":[{"login":"azz","id":1297597,"node_id":"MDQ6VXNlcjEyOTc1OTc=","avatar_url":"https://avatars.githubusercontent.com/u/1297597?v=4","gravatar_id":"","url":"https://api.github.com/users/azz","html_url":"https://github.com/azz","followers_url":"https://api.github.com/users/azz/followers","following_url":"https://api.github.com/users/azz/following{/other_user}","gists_url":"https://api.github.com/users/azz/gists{/gist_id}","starred_url":"https://api.github.com/users/azz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azz/subscriptions","organizations_url":"https://api.github.com/users/azz/orgs","repos_url":"https://api.github.com/users/azz/repos","events_url":"https://api.github.com/users/azz/events{/privacy}","received_events_url":"https://api.github.com/users/azz/received_events","type":"User","site_admin":false}],"milestone":null,"comments":29,"created_at":"2017-06-08T22:21:59Z","updated_at":"2024-03-24T20:04:39Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Edit by @lydell: Prettier currently keeps multiline object literals multiline even if they fit in a single line, and does special things to blank lines: removes some, collapses consecutive blank lines into one and never adds blank lines. This is because the majority of people seem to want this level of control since we haven’t found a super good heuristic for printing those things. Some people prefer a 100% uniform printing, though, that _completely_ ignores original formatting, even if it sometimes results in “uglier” code. We should discuss this.\r\n\r\nOriginal post:\r\n\r\nIs it possible to have a strict option that disambiguates whitespace and always prints out the same so long as the AST is the same? I'm running into some weird issues where lines wrap and then don't unwrap when they are under the line-length limit. This would greatly help with some of my merge conflicts right now :)\r\n\r\nP.S. I'm using typescript.\r\n\r\nThanks","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/2068/reactions","total_count":73,"+1":59,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":7,"rocket":3,"eyes":3},"timeline_url":"https://api.github.com/repos/prettier/prettier/issues/2068/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2016927794","html_url":"https://github.com/prettier/prettier/issues/2068#issuecomment-2016927794","issue_url":"https://api.github.com/repos/prettier/prettier/issues/2068","id":2016927794,"node_id":"IC_kwDOBHn_e854N-Ay","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-24T20:04:38Z","updated_at":"2024-03-24T20:04:38Z","author_association":"NONE","body":"You can use https://github.com/resolritter/prettier-plugin-compactify though that project isn't active. (And you can only have one of these \"preprocess\" plugins per language....I already use prettier-plugin-organize-imports.)","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2016927794/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-24T20:04:39Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36835462364","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/prettier/prettier/issues/10757","repository_url":"https://api.github.com/repos/prettier/prettier","labels_url":"https://api.github.com/repos/prettier/prettier/issues/10757/labels{/name}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/10757/comments","events_url":"https://api.github.com/repos/prettier/prettier/issues/10757/events","html_url":"https://github.com/prettier/prettier/issues/10757","id":864551799,"node_id":"MDU6SXNzdWU4NjQ1NTE3OTk=","number":10757,"title":"Option for always collapsing nodes to the shortest representation","user":{"login":"resolritter","id":17429390,"node_id":"MDQ6VXNlcjE3NDI5Mzkw","avatar_url":"https://avatars.githubusercontent.com/u/17429390?v=4","gravatar_id":"","url":"https://api.github.com/users/resolritter","html_url":"https://github.com/resolritter","followers_url":"https://api.github.com/users/resolritter/followers","following_url":"https://api.github.com/users/resolritter/following{/other_user}","gists_url":"https://api.github.com/users/resolritter/gists{/gist_id}","starred_url":"https://api.github.com/users/resolritter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/resolritter/subscriptions","organizations_url":"https://api.github.com/users/resolritter/orgs","repos_url":"https://api.github.com/users/resolritter/repos","events_url":"https://api.github.com/users/resolritter/events{/privacy}","received_events_url":"https://api.github.com/users/resolritter/received_events","type":"User","site_admin":false},"labels":[{"id":516128597,"node_id":"MDU6TGFiZWw1MTYxMjg1OTc=","url":"https://api.github.com/repos/prettier/prettier/labels/status:needs%20discussion","name":"status:needs discussion","color":"5319e7","default":false,"description":"Issues needing discussion and a decision to be made before action can be taken"},{"id":707748687,"node_id":"MDU6TGFiZWw3MDc3NDg2ODc=","url":"https://api.github.com/repos/prettier/prettier/labels/lang:javascript","name":"lang:javascript","color":"006b75","default":false,"description":"Issues affecting JS"},{"id":1992065483,"node_id":"MDU6TGFiZWwxOTkyMDY1NDgz","url":"https://api.github.com/repos/prettier/prettier/labels/area:object%20literals","name":"area:object literals","color":"fff5bc","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2021-04-22T05:22:57Z","updated_at":"2024-03-24T19:56:12Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"I have read the following\r\n\r\n- https://github.com/prettier/prettier/issues/5972\r\n- https://github.com/prettier/prettier/issues/6596\r\n- https://github.com/prettier/prettier/issues/7794\r\n\r\nAll are considered duplicates of https://github.com/prettier/prettier/issues/2068 but it might not be the case here.\r\n\r\nGiven the default Prettier settings for 2.21, if I have a file\r\n\r\n```\r\nconst a = { b: c, d: f, g: \"long string\" }\r\n```\r\n\r\nThen formatting it will produce\r\n\r\n```\r\nconst a = {\r\n b: c,\r\n d: f,\r\n g:\r\n \"long string\",\r\n}\r\n```\r\n\r\nIf at some point remove `g` while refactoring the code, it becomes\r\n\r\n```\r\nconst a = {\r\n b: c,\r\n d: f,\r\n}\r\n```\r\n\r\nAs I understand it, the above will not be shortened back to `const a = { b: c, d: f }` because of the \"respect user's newline placement\" rationale.\r\n\r\nUnlike https://github.com/prettier/prettier/issues/2068 the desire is not to disregard the input style completely but only keep if it is **explicit**. i.e.\r\n\r\n- The following would **not** collapse - explicit newline in-between members\r\n\r\n```\r\nconst a = {\r\n b: c,\r\n\r\n d: f,\r\n}\r\n```\r\n\r\n- The following would **not** collapse - explicit comment after fields\r\n\r\n```\r\nconst a = {\r\n b: c, // some comment\r\n d: f, // some comment\r\n}\r\n```\r\n\r\n---\r\n\r\nSuch option would be very useful for refactoring, where nodes can be formatted more concisely after you delete or move code.\r\n\r\nI thought it could be implemented as a plug-in or \"second-pass\" formatter but I'm not sure. Would appreciate some hints in this regard if this can't be done here.","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/10757/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/prettier/prettier/issues/10757/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2016925744","html_url":"https://github.com/prettier/prettier/issues/10757#issuecomment-2016925744","issue_url":"https://api.github.com/repos/prettier/prettier/issues/10757","id":2016925744,"node_id":"IC_kwDOBHn_e854N9gw","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-24T19:56:12Z","updated_at":"2024-03-24T19:56:12Z","author_association":"NONE","body":"Duplicate of #2068","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2016925744/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-24T19:56:13Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36835297335","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":75104123,"name":"prettier/prettier","url":"https://api.github.com/repos/prettier/prettier"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/prettier/prettier/issues/2068","repository_url":"https://api.github.com/repos/prettier/prettier","labels_url":"https://api.github.com/repos/prettier/prettier/issues/2068/labels{/name}","comments_url":"https://api.github.com/repos/prettier/prettier/issues/2068/comments","events_url":"https://api.github.com/repos/prettier/prettier/issues/2068/events","html_url":"https://github.com/prettier/prettier/issues/2068","id":234672529,"node_id":"MDU6SXNzdWUyMzQ2NzI1Mjk=","number":2068,"title":"Option for ignoring original formatting 100%","user":{"login":"ccorcos","id":1794527,"node_id":"MDQ6VXNlcjE3OTQ1Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1794527?v=4","gravatar_id":"","url":"https://api.github.com/users/ccorcos","html_url":"https://github.com/ccorcos","followers_url":"https://api.github.com/users/ccorcos/followers","following_url":"https://api.github.com/users/ccorcos/following{/other_user}","gists_url":"https://api.github.com/users/ccorcos/gists{/gist_id}","starred_url":"https://api.github.com/users/ccorcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccorcos/subscriptions","organizations_url":"https://api.github.com/users/ccorcos/orgs","repos_url":"https://api.github.com/users/ccorcos/repos","events_url":"https://api.github.com/users/ccorcos/events{/privacy}","received_events_url":"https://api.github.com/users/ccorcos/received_events","type":"User","site_admin":false},"labels":[{"id":550888572,"node_id":"MDU6TGFiZWw1NTA4ODg1NzI=","url":"https://api.github.com/repos/prettier/prettier/labels/type:option%20request","name":"type:option request","color":"0052cc","default":false,"description":"Issues requesting a new option. We generally don’t accept these unless there is technical necessity."},{"id":707750225,"node_id":"MDU6TGFiZWw3MDc3NTAyMjU=","url":"https://api.github.com/repos/prettier/prettier/labels/difficulty:hard","name":"difficulty:hard","color":"0e8a16","default":false,"description":"Issues that might take an entire weekend, or require a tough decision to fix"}],"state":"open","locked":false,"assignee":{"login":"azz","id":1297597,"node_id":"MDQ6VXNlcjEyOTc1OTc=","avatar_url":"https://avatars.githubusercontent.com/u/1297597?v=4","gravatar_id":"","url":"https://api.github.com/users/azz","html_url":"https://github.com/azz","followers_url":"https://api.github.com/users/azz/followers","following_url":"https://api.github.com/users/azz/following{/other_user}","gists_url":"https://api.github.com/users/azz/gists{/gist_id}","starred_url":"https://api.github.com/users/azz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azz/subscriptions","organizations_url":"https://api.github.com/users/azz/orgs","repos_url":"https://api.github.com/users/azz/repos","events_url":"https://api.github.com/users/azz/events{/privacy}","received_events_url":"https://api.github.com/users/azz/received_events","type":"User","site_admin":false},"assignees":[{"login":"azz","id":1297597,"node_id":"MDQ6VXNlcjEyOTc1OTc=","avatar_url":"https://avatars.githubusercontent.com/u/1297597?v=4","gravatar_id":"","url":"https://api.github.com/users/azz","html_url":"https://github.com/azz","followers_url":"https://api.github.com/users/azz/followers","following_url":"https://api.github.com/users/azz/following{/other_user}","gists_url":"https://api.github.com/users/azz/gists{/gist_id}","starred_url":"https://api.github.com/users/azz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azz/subscriptions","organizations_url":"https://api.github.com/users/azz/orgs","repos_url":"https://api.github.com/users/azz/repos","events_url":"https://api.github.com/users/azz/events{/privacy}","received_events_url":"https://api.github.com/users/azz/received_events","type":"User","site_admin":false}],"milestone":null,"comments":28,"created_at":"2017-06-08T22:21:59Z","updated_at":"2024-03-24T19:37:08Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Edit by @lydell: Prettier currently keeps multiline object literals multiline even if they fit in a single line, and does special things to blank lines: removes some, collapses consecutive blank lines into one and never adds blank lines. This is because the majority of people seem to want this level of control since we haven’t found a super good heuristic for printing those things. Some people prefer a 100% uniform printing, though, that _completely_ ignores original formatting, even if it sometimes results in “uglier” code. We should discuss this.\r\n\r\nOriginal post:\r\n\r\nIs it possible to have a strict option that disambiguates whitespace and always prints out the same so long as the AST is the same? I'm running into some weird issues where lines wrap and then don't unwrap when they are under the line-length limit. This would greatly help with some of my merge conflicts right now :)\r\n\r\nP.S. I'm using typescript.\r\n\r\nThanks","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/2068/reactions","total_count":73,"+1":59,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":7,"rocket":3,"eyes":3},"timeline_url":"https://api.github.com/repos/prettier/prettier/issues/2068/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2016917451","html_url":"https://github.com/prettier/prettier/issues/2068#issuecomment-2016917451","issue_url":"https://api.github.com/repos/prettier/prettier/issues/2068","id":2016917451,"node_id":"IC_kwDOBHn_e854N7fL","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-24T19:37:08Z","updated_at":"2024-03-24T19:37:08Z","author_association":"NONE","body":"> I'm sorry but this has already been discussed a lot and the best trade-off we've come up with is to keep objects multliline if they have a newline inside.\r\n\r\nNo, it's more obscure than that.\r\n\r\nThe object is kept multiline *if there is a new line between the opening brace and first property*\r\n\r\nThe following are formatted as multi-line:\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n```\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\", name2: \"value2\",\r\n};\r\n```\r\n\r\n```js\r\nconst obj = {\r\n name1: \"value1\",\r\n name2: \"value2\", };\r\n```\r\n\r\nThe following are formatted as single-line:\r\n\r\n```js\r\nconst obj = { name1: \"value1\", name2: \"value2\", };\r\n```\r\n\r\n```js\r\nconst obj = { name1: \"value1\",\r\n name2: \"value2\",\r\n};\r\n```\r\n\r\nThe current Prettier documentation explicitly says\r\n\r\n# THIS \"IS NOT A FEATURE\"\r\n\r\n> The semi-manual formatting for object literals is in fact a workaround, not a feature.","reactions":{"url":"https://api.github.com/repos/prettier/prettier/issues/comments/2016917451/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-24T19:37:09Z","org":{"id":25822731,"login":"prettier","gravatar_id":"","url":"https://api.github.com/orgs/prettier","avatar_url":"https://avatars.githubusercontent.com/u/25822731?"}},{"id":"36835022701","type":"IssuesEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":281337665,"name":"DataDog/dd-opentelemetry-exporter-js","url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js"},"payload":{"action":"opened","issue":{"url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js/issues/21","repository_url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js","labels_url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js/issues/21/comments","events_url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js/issues/21/events","html_url":"https://github.com/DataDog/dd-opentelemetry-exporter-js/issues/21","id":2204509374,"node_id":"I_kwDOEMTfQc6DZiS-","number":21,"title":"Deprecation link is broken","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2024-03-24T19:07:01Z","updated_at":"2024-03-24T19:07:01Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"> Note: This Repository has been deprecated and is no longer actively maintained. Please refer to [OTLP Ingest in Datadog Agent](https://docs.datadoghq.com/tracing/setup_overview/open_standards/#otlp-ingest-in-datadog-agent) for support options for using OpenTelemetry and Datadog.\r\n\r\nHowever, the link https://docs.datadoghq.com/tracing/setup_overview/open_standards/#otlp-ingest-in-datadog-agent goes to\r\n\r\n> Arf.\r\n> It seems we can't find what you're looking for.\r\n> ERROR 404","reactions":{"url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js/issues/21/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/DataDog/dd-opentelemetry-exporter-js/issues/21/timeline","performed_via_github_app":null,"state_reason":null}},"public":true,"created_at":"2024-03-24T19:07:03Z","org":{"id":365230,"login":"DataDog","gravatar_id":"","url":"https://api.github.com/orgs/DataDog","avatar_url":"https://avatars.githubusercontent.com/u/365230?"}},{"id":"36823638564","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":24195339,"name":"angular/angular","url":"https://api.github.com/repos/angular/angular"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular/issues/25160","repository_url":"https://api.github.com/repos/angular/angular","labels_url":"https://api.github.com/repos/angular/angular/issues/25160/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular/issues/25160/comments","events_url":"https://api.github.com/repos/angular/angular/issues/25160/events","html_url":"https://github.com/angular/angular/issues/25160","id":345148870,"node_id":"MDU6SXNzdWUzNDUxNDg4NzA=","number":25160,"title":"Clarify information about deprecation of :ng-deep and recommend replacement","user":{"login":"cvmocanu","id":59873,"node_id":"MDQ6VXNlcjU5ODcz","avatar_url":"https://avatars.githubusercontent.com/u/59873?v=4","gravatar_id":"","url":"https://api.github.com/users/cvmocanu","html_url":"https://github.com/cvmocanu","followers_url":"https://api.github.com/users/cvmocanu/followers","following_url":"https://api.github.com/users/cvmocanu/following{/other_user}","gists_url":"https://api.github.com/users/cvmocanu/gists{/gist_id}","starred_url":"https://api.github.com/users/cvmocanu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cvmocanu/subscriptions","organizations_url":"https://api.github.com/users/cvmocanu/orgs","repos_url":"https://api.github.com/users/cvmocanu/repos","events_url":"https://api.github.com/users/cvmocanu/events{/privacy}","received_events_url":"https://api.github.com/users/cvmocanu/received_events","type":"User","site_admin":false},"labels":[{"id":375496864,"node_id":"MDU6TGFiZWwzNzU0OTY4NjQ=","url":"https://api.github.com/repos/angular/angular/labels/freq1:%20low","name":"freq1: low","color":"fbca04","default":false,"description":null},{"id":2391913567,"node_id":"MDU6TGFiZWwyMzkxOTEzNTY3","url":"https://api.github.com/repos/angular/angular/labels/P4","name":"P4","color":"fef2c0","default":false,"description":"A relatively minor issue that is not relevant to core functions"},{"id":4385334843,"node_id":"LA_kwDOAXExC88AAAABBWLmOw","url":"https://api.github.com/repos/angular/angular/labels/canonical","name":"canonical","color":"0E8A16","default":false,"description":"This issue represents a canonical design issue in Angular."},{"id":6190835462,"node_id":"LA_kwDOAXExC88AAAABcQCnBg","url":"https://api.github.com/repos/angular/angular/labels/area:%20docs","name":"area: docs","color":"c5def5","default":false,"description":"Related to the documentation"}],"state":"closed","locked":false,"assignee":{"login":"jelbourn","id":838736,"node_id":"MDQ6VXNlcjgzODczNg==","avatar_url":"https://avatars.githubusercontent.com/u/838736?v=4","gravatar_id":"","url":"https://api.github.com/users/jelbourn","html_url":"https://github.com/jelbourn","followers_url":"https://api.github.com/users/jelbourn/followers","following_url":"https://api.github.com/users/jelbourn/following{/other_user}","gists_url":"https://api.github.com/users/jelbourn/gists{/gist_id}","starred_url":"https://api.github.com/users/jelbourn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jelbourn/subscriptions","organizations_url":"https://api.github.com/users/jelbourn/orgs","repos_url":"https://api.github.com/users/jelbourn/repos","events_url":"https://api.github.com/users/jelbourn/events{/privacy}","received_events_url":"https://api.github.com/users/jelbourn/received_events","type":"User","site_admin":false},"assignees":[{"login":"jelbourn","id":838736,"node_id":"MDQ6VXNlcjgzODczNg==","avatar_url":"https://avatars.githubusercontent.com/u/838736?v=4","gravatar_id":"","url":"https://api.github.com/users/jelbourn","html_url":"https://github.com/jelbourn","followers_url":"https://api.github.com/users/jelbourn/followers","following_url":"https://api.github.com/users/jelbourn/following{/other_user}","gists_url":"https://api.github.com/users/jelbourn/gists{/gist_id}","starred_url":"https://api.github.com/users/jelbourn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jelbourn/subscriptions","organizations_url":"https://api.github.com/users/jelbourn/orgs","repos_url":"https://api.github.com/users/jelbourn/repos","events_url":"https://api.github.com/users/jelbourn/events{/privacy}","received_events_url":"https://api.github.com/users/jelbourn/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/angular/angular/milestones/82","html_url":"https://github.com/angular/angular/milestone/82","labels_url":"https://api.github.com/repos/angular/angular/milestones/82/labels","id":3045967,"node_id":"MDk6TWlsZXN0b25lMzA0NTk2Nw==","number":82,"title":"Backlog","description":"Milestone for triaged issues that have not yet been scheduled for resolution.","creator":{"login":"IgorMinar","id":216296,"node_id":"MDQ6VXNlcjIxNjI5Ng==","avatar_url":"https://avatars.githubusercontent.com/u/216296?v=4","gravatar_id":"","url":"https://api.github.com/users/IgorMinar","html_url":"https://github.com/IgorMinar","followers_url":"https://api.github.com/users/IgorMinar/followers","following_url":"https://api.github.com/users/IgorMinar/following{/other_user}","gists_url":"https://api.github.com/users/IgorMinar/gists{/gist_id}","starred_url":"https://api.github.com/users/IgorMinar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IgorMinar/subscriptions","organizations_url":"https://api.github.com/users/IgorMinar/orgs","repos_url":"https://api.github.com/users/IgorMinar/repos","events_url":"https://api.github.com/users/IgorMinar/events{/privacy}","received_events_url":"https://api.github.com/users/IgorMinar/received_events","type":"User","site_admin":false},"open_issues":1242,"closed_issues":13871,"state":"open","created_at":"2018-01-18T16:52:20Z","updated_at":"2024-03-23T16:45:32Z","due_on":null,"closed_at":null},"comments":86,"created_at":"2018-07-27T09:06:22Z","updated_at":"2024-03-23T19:05:40Z","closed_at":"2024-03-22T19:14:42Z","author_association":"NONE","active_lock_reason":null,"body":"The documentation at https://angular.io/guide/component-styles states this about ``:ng-deep``:\r\n> The shadow-piercing descendant combinator is deprecated and support is being removed from major browsers and tools. As such we plan to drop support in Angular (for all 3 of /deep/, >>> and ::ng-deep).\r\n\r\nAs I understand, Angular was using the browser support for the piercing selectors ``/deep/`` and ``>>>``.\r\n\r\nBut ``:ng-deep`` is surely not supported by any browser.\r\nAnd this is what I find confusing in the documentation. I don't understand what browser support has **anything** to do with ``:ng-deep``.\r\n\r\nThe way I understand it, ``:ng-deep`` prevents Angular from appending the attribute selectors to all selector following it.\r\n\r\nSo, this CSS in a component:\r\n```\r\n:host ::ng-deep .my-button .ui-button-text {\r\n font-weight: bold;\r\n}\r\n```\r\nwill be transformed to:\r\n```\r\n[_nghost-c12] .my-button .ui-button-text {\r\n font-weight: bold;\r\n}\r\n```\r\n\r\nWithout ``:ng-deep``, this will be produced instead:\r\n```\r\n[_nghost-c12] .my-button[_nghost-c12] .ui-button-text[_nghost-c12] {\r\n font-weight: bold;\r\n}\r\n```\r\n(obviously breaking my intention).\r\n\r\nI find 2 problems with the documentation, as it stands now:\r\n- I don't see any relationship between lack of browser support for piercing selectors and deprecating ``:ng-deep``\r\n- I don't see any reason to deprecate ``:ng-deep`` (since it just tells Angular: \"keep your attribute selectors away from my styles\")\r\n\r\nI propose the following:\r\n- if I missed anything, and there is a valid reason why ``:ng-deep`` should be deprecated, the documentation should be changed to explain why\r\n- if my reasoning above is correct, remove the section about deprecating ``:ng-deep``, keeping the deprecation notice only for the piercing selectors ``/deep/`` and ``>>>``.","reactions":{"url":"https://api.github.com/repos/angular/angular/issues/25160/reactions","total_count":173,"+1":172,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/angular/angular/issues/25160/timeline","performed_via_github_app":null,"state_reason":"completed"},"comment":{"url":"https://api.github.com/repos/angular/angular/issues/comments/2016577552","html_url":"https://github.com/angular/angular/issues/25160#issuecomment-2016577552","issue_url":"https://api.github.com/repos/angular/angular/issues/25160","id":2016577552,"node_id":"IC_kwDOAXExC854MogQ","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-23T19:05:40Z","updated_at":"2024-03-23T19:05:40Z","author_association":"CONTRIBUTOR","body":"> We will not be removing the feature (not that we had planned to anyway).\r\n\r\nSomehow, for some reason, Yyars of conversation assumed otherwise ^\r\n\r\nCommunication is key.","reactions":{"url":"https://api.github.com/repos/angular/angular/issues/comments/2016577552/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-23T19:05:41Z","org":{"id":139426,"login":"angular","gravatar_id":"","url":"https://api.github.com/orgs/angular","avatar_url":"https://avatars.githubusercontent.com/u/139426?"}},{"id":"36770918323","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":24728405,"name":"ndjson/ndjson.github.io","url":"https://api.github.com/repos/ndjson/ndjson.github.io"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1","repository_url":"https://api.github.com/repos/ndjson/ndjson.github.io","labels_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/comments","events_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/events","html_url":"https://github.com/ndjson/ndjson.github.io/issues/1","id":72179129,"node_id":"MDU6SXNzdWU3MjE3OTEyOQ==","number":1,"title":"Relationship to jsonlines.org","user":{"login":"mcast","id":36801,"node_id":"MDQ6VXNlcjM2ODAx","avatar_url":"https://avatars.githubusercontent.com/u/36801?v=4","gravatar_id":"","url":"https://api.github.com/users/mcast","html_url":"https://github.com/mcast","followers_url":"https://api.github.com/users/mcast/followers","following_url":"https://api.github.com/users/mcast/following{/other_user}","gists_url":"https://api.github.com/users/mcast/gists{/gist_id}","starred_url":"https://api.github.com/users/mcast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcast/subscriptions","organizations_url":"https://api.github.com/users/mcast/orgs","repos_url":"https://api.github.com/users/mcast/repos","events_url":"https://api.github.com/users/mcast/events{/privacy}","received_events_url":"https://api.github.com/users/mcast/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2015-04-30T14:26:58Z","updated_at":"2024-03-21T17:37:08Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"I found http://ndjson.org/ while looking for http://jsonlines.org/ and now I'm puzzled about how they are related to each other.\n\nThanks for being clear about the fact that ndjson is a fork of jsonlines. Please could you also explain a little about what motivated you to fork? Or how you expect jsonlines to evolve in the presence of ndjson, if that is appropriate?\n\nTo a large extent this is just my curiosity & it won't matter whether my next app is throwing .jsonl or .ndjson extensions. However as the standards show signs of diverging (comments on lines, file extension, outer wrapping object to make valid .json) it would be nice to have a clear way to choose, for applications which interact.\n\nThanks,\n\nMatthew\n","reactions":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/reactions","total_count":78,"+1":78,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/comments/2013146199","html_url":"https://github.com/ndjson/ndjson.github.io/issues/1#issuecomment-2013146199","issue_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1","id":2013146199,"node_id":"IC_kwDOAXlTVc53_ixX","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-21T17:37:07Z","updated_at":"2024-03-21T17:37:07Z","author_association":"NONE","body":"> the author (@finnp) https://github.com/ndjson/ndjson-spec/issues/35#issuecomment-1285673417 the further efforts should be focused on JSON Lines instead of NDJSON\r\n\r\nThat's not what finnp said.\r\n\r\nHe said:\r\n\r\n> I'm open to the idea to deprecate the ndjson repository and redirect the website to jsonlines.org (since some places link it)","reactions":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/comments/2013146199/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-21T17:37:08Z","org":{"id":4949316,"login":"ndjson","gravatar_id":"","url":"https://api.github.com/orgs/ndjson","avatar_url":"https://avatars.githubusercontent.com/u/4949316?"}},{"id":"36770901264","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":24728405,"name":"ndjson/ndjson.github.io","url":"https://api.github.com/repos/ndjson/ndjson.github.io"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1","repository_url":"https://api.github.com/repos/ndjson/ndjson.github.io","labels_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/comments","events_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/events","html_url":"https://github.com/ndjson/ndjson.github.io/issues/1","id":72179129,"node_id":"MDU6SXNzdWU3MjE3OTEyOQ==","number":1,"title":"Relationship to jsonlines.org","user":{"login":"mcast","id":36801,"node_id":"MDQ6VXNlcjM2ODAx","avatar_url":"https://avatars.githubusercontent.com/u/36801?v=4","gravatar_id":"","url":"https://api.github.com/users/mcast","html_url":"https://github.com/mcast","followers_url":"https://api.github.com/users/mcast/followers","following_url":"https://api.github.com/users/mcast/following{/other_user}","gists_url":"https://api.github.com/users/mcast/gists{/gist_id}","starred_url":"https://api.github.com/users/mcast/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcast/subscriptions","organizations_url":"https://api.github.com/users/mcast/orgs","repos_url":"https://api.github.com/users/mcast/repos","events_url":"https://api.github.com/users/mcast/events{/privacy}","received_events_url":"https://api.github.com/users/mcast/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2015-04-30T14:26:58Z","updated_at":"2024-03-21T17:36:32Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"I found http://ndjson.org/ while looking for http://jsonlines.org/ and now I'm puzzled about how they are related to each other.\n\nThanks for being clear about the fact that ndjson is a fork of jsonlines. Please could you also explain a little about what motivated you to fork? Or how you expect jsonlines to evolve in the presence of ndjson, if that is appropriate?\n\nTo a large extent this is just my curiosity & it won't matter whether my next app is throwing .jsonl or .ndjson extensions. However as the standards show signs of diverging (comments on lines, file extension, outer wrapping object to make valid .json) it would be nice to have a clear way to choose, for applications which interact.\n\nThanks,\n\nMatthew\n","reactions":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/reactions","total_count":78,"+1":78,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/comments/2013145208","html_url":"https://github.com/ndjson/ndjson.github.io/issues/1#issuecomment-2013145208","issue_url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/1","id":2013145208,"node_id":"IC_kwDOAXlTVc53_ih4","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-21T17:36:32Z","updated_at":"2024-03-21T17:36:32Z","author_association":"NONE","body":"> application/jsonlines+json\r\n\r\nis just wrong FYI","reactions":{"url":"https://api.github.com/repos/ndjson/ndjson.github.io/issues/comments/2013145208/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-21T17:36:33Z","org":{"id":4949316,"login":"ndjson","gravatar_id":"","url":"https://api.github.com/orgs/ndjson","avatar_url":"https://avatars.githubusercontent.com/u/4949316?"}},{"id":"36756157605","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":115038646,"name":"bazelbuild/rules_pkg","url":"https://api.github.com/repos/bazelbuild/rules_pkg"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826","repository_url":"https://api.github.com/repos/bazelbuild/rules_pkg","labels_url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826/labels{/name}","comments_url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826/comments","events_url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826/events","html_url":"https://github.com/bazelbuild/rules_pkg/issues/826","id":2163743389,"node_id":"I_kwDOBttZts6A-Bqd","number":826,"title":"Deprecation Warning in `build_zip.py` `datetime.datetime.utcfromtimestamp()` is deprecated and scheduled for removal in a future version","user":{"login":"guw","id":191472,"node_id":"MDQ6VXNlcjE5MTQ3Mg==","avatar_url":"https://avatars.githubusercontent.com/u/191472?v=4","gravatar_id":"","url":"https://api.github.com/users/guw","html_url":"https://github.com/guw","followers_url":"https://api.github.com/users/guw/followers","following_url":"https://api.github.com/users/guw/following{/other_user}","gists_url":"https://api.github.com/users/guw/gists{/gist_id}","starred_url":"https://api.github.com/users/guw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guw/subscriptions","organizations_url":"https://api.github.com/users/guw/orgs","repos_url":"https://api.github.com/users/guw/repos","events_url":"https://api.github.com/users/guw/events{/privacy}","received_events_url":"https://api.github.com/users/guw/received_events","type":"User","site_admin":false},"labels":[{"id":1514282233,"node_id":"MDU6TGFiZWwxNTE0MjgyMjMz","url":"https://api.github.com/repos/bazelbuild/rules_pkg/labels/P2","name":"P2","color":"b7f23a","default":false,"description":"An issue that should be worked on when time is available"},{"id":3188812790,"node_id":"MDU6TGFiZWwzMTg4ODEyNzkw","url":"https://api.github.com/repos/bazelbuild/rules_pkg/labels/internal%20cleanup","name":"internal cleanup","color":"A6E86F","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-03-01T16:26:08Z","updated_at":"2024-03-21T10:50:27Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"I started to see this on MacOS Sonoma 14.3.1:\r\n\r\n```\r\nINFO: From PackageZip ...:\r\n.../external/rules_pkg/pkg/private/zip/build_zip.runfiles/core/../rules_pkg/pkg/private/zip/build_zip.py:77: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).\r\n ts = datetime.datetime.utcfromtimestamp(ts)\r\n```\r\n\r\nMight be related to a recent `brew upgrade`?","reactions":{"url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/comments/2011917965","html_url":"https://github.com/bazelbuild/rules_pkg/issues/826#issuecomment-2011917965","issue_url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/826","id":2011917965,"node_id":"IC_kwDOBttZts53626N","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-21T10:50:26Z","updated_at":"2024-03-21T10:50:26Z","author_association":"CONTRIBUTOR","body":"Yes, this is deprecated in Python 3.12.\r\n\r\n> [datetime](https://docs.python.org/3/library/datetime.html#module-datetime): [datetime.datetime](https://docs.python.org/3/library/datetime.html#datetime.datetime)’s [utcnow()](https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow) and [utcfromtimestamp()](https://docs.python.org/3/library/datetime.html#datetime.datetime.utcfromtimestamp) are deprecated and will be removed in a future version. Instead, use timezone-aware objects to represent datetimes in UTC: respectively, call [now()](https://docs.python.org/3/library/datetime.html#datetime.datetime.now) and [fromtimestamp()](https://docs.python.org/3/library/datetime.html#datetime.datetime.fromtimestamp) with the tz parameter set to [datetime.UTC](https://docs.python.org/3/library/datetime.html#datetime.UTC).\r\n\r\nFortunately, datetime.fromtimestamp has been available ~forever.","reactions":{"url":"https://api.github.com/repos/bazelbuild/rules_pkg/issues/comments/2011917965/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-21T10:50:27Z","org":{"id":11684617,"login":"bazelbuild","gravatar_id":"","url":"https://api.github.com/orgs/bazelbuild","avatar_url":"https://avatars.githubusercontent.com/u/11684617?"}},{"id":"36755843027","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":775410061,"name":"redoapp/rules_file","url":"https://api.github.com/repos/redoapp/rules_file"},"payload":{"repository_id":775410061,"push_id":17643017103,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"c461819bc2ce7b1c06f1fc50bc3a835c87609a9d","before":"a79a1036c27eb545cc6e7e08d99de525544bac4f","commits":[{"sha":"c461819bc2ce7b1c06f1fc50bc3a835c87609a9d","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Use pre-built buildifier binaries when available","distinct":true,"url":"https://api.github.com/repos/redoapp/rules_file/commits/c461819bc2ce7b1c06f1fc50bc3a835c87609a9d"}]},"public":true,"created_at":"2024-03-21T10:41:01Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36630194499","type":"IssuesEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":63173142,"name":"headintheclouddev/typings-suitescript-2.0","url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0"},"payload":{"action":"opened","issue":{"url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0/issues/269","repository_url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0","labels_url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0/issues/269/labels{/name}","comments_url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0/issues/269/comments","events_url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0/issues/269/events","html_url":"https://github.com/headintheclouddev/typings-suitescript-2.0/issues/269","id":2191190856,"node_id":"I_kwDOA8PyFs6CmutI","number":269,"title":"Why not use `declare module` typings?","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2024-03-18T04:14:55Z","updated_at":"2024-03-18T04:14:55Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Path mappings work, but are rarely used since every downstream TypeScript project also has to set them.\r\n\r\nMore typical is module declarations.\r\n\r\n```ts\r\ndeclare module \"N/log\" {\r\n}\r\n```\r\n\r\nThese are then added by one of:\r\n\r\n1. Installing under `@types` as a npm alias (or having the project in DefinitelyTyped to begin with)\r\n2. Adding `typeRoots`.\r\n3. Referencing the types via tripe slash `/// `\r\n\r\nNote that module declarations is how Node.js typings work (`@types/node`).","reactions":{"url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0/issues/269/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/headintheclouddev/typings-suitescript-2.0/issues/269/timeline","performed_via_github_app":null,"state_reason":null}},"public":true,"created_at":"2024-03-18T04:14:56Z","org":{"id":20411667,"login":"headintheclouddev","gravatar_id":"","url":"https://api.github.com/orgs/headintheclouddev","avatar_url":"https://avatars.githubusercontent.com/u/20411667?"}},{"id":"36628667746","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":185901023,"name":"open-telemetry/opentelemetry-js","url":"https://api.github.com/repos/open-telemetry/opentelemetry-js"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548","repository_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js","labels_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/labels{/name}","comments_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/comments","events_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/events","html_url":"https://github.com/open-telemetry/opentelemetry-js/issues/4548","id":2187471623,"node_id":"I_kwDOCxSf386CYisH","number":4548,"title":"Avoid the SemVer v0.x.x anti-pattern","user":{"login":"jaydenseric","id":1754873,"node_id":"MDQ6VXNlcjE3NTQ4NzM=","avatar_url":"https://avatars.githubusercontent.com/u/1754873?v=4","gravatar_id":"","url":"https://api.github.com/users/jaydenseric","html_url":"https://github.com/jaydenseric","followers_url":"https://api.github.com/users/jaydenseric/followers","following_url":"https://api.github.com/users/jaydenseric/following{/other_user}","gists_url":"https://api.github.com/users/jaydenseric/gists{/gist_id}","starred_url":"https://api.github.com/users/jaydenseric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaydenseric/subscriptions","organizations_url":"https://api.github.com/users/jaydenseric/orgs","repos_url":"https://api.github.com/users/jaydenseric/repos","events_url":"https://api.github.com/users/jaydenseric/events{/privacy}","received_events_url":"https://api.github.com/users/jaydenseric/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-03-15T00:00:44Z","updated_at":"2024-03-18T02:25:29Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"\r\n\r\n- [x] This only affects the JavaScript OpenTelemetry library\r\n- [ ] This may affect other libraries, but I would like to get opinions here first\r\n\r\nIt's an anti pattern to publish any package, for any reason, with a SemVer 0.x.x version. This is because according to SemVer v0.x.x releases are considered major breaking change releases until v1.x.x, so tooling like npm loses the ability to accept semver minor changes in dependencies with a version range specified with `^`.\r\n\r\nThere are only 2 \"upsides\" to v0.x.x:\r\n\r\n- The package author doesn't have to think about or declare if changes are major and breaking or minor and non-breaking. They can just throw a soup of changes out into the wild. This is really truly awful for anyone depending on your package to deal with though, so I don't consider this an \"upside\" for the ecosystem. Any time something is published, the package author should be carefully considering and what changes are breaking, and should reflect if there are breaking changes or not in a SemVer major increment, and should document those changes in the changelog and release notes so consumers can decide when and how to adopt the new version.\r\n- Users can look at the major version number, see it's 0, and have an expectation that the package is experimental. This is a completely worthless \"upside\" because while this is an extra signal in the version, the user has lost a far more important signal about if there are minor or major changes. Also, users can't trust the stability signal because there have been packages that reached stability a decade ago and are still on v0.x.x, and there are packages with a high major version number that are unstable nightmares riddled with hundreds of bugs. The package readme is the correct place to alert users if a package is experimental or stable.\r\n\r\nIn my work Node.js project right now, here is the result of running `npm ls @opentelemetry/instrumentation`:\r\n\r\n```\r\n@[redacted]@ /[redacted]\r\n├─┬ @azure/opentelemetry-instrumentation-azure-sdk@1.0.0-beta.5\r\n│ └── @opentelemetry/instrumentation@0.41.2\r\n├─┬ @opentelemetry/instrumentation-graphql@0.38.1\r\n│ └── @opentelemetry/instrumentation@0.49.1 deduped\r\n├─┬ @opentelemetry/instrumentation-http@0.49.1\r\n│ └── @opentelemetry/instrumentation@0.49.1 deduped\r\n├─┬ @opentelemetry/instrumentation-koa@0.38.0\r\n│ └── @opentelemetry/instrumentation@0.49.1 deduped\r\n└── @opentelemetry/instrumentation@0.49.1\r\n```\r\n\r\nNote that there are 2 versions of `@opentelemetry/instrumentation` installed; v0.41.2 and v0.49.1. This is through no fault of my own, or even really `@azure/opentelemetry-instrumentation-azure-sdk` installing the very old one. The fault is the v0.x.x of `@opentelemetry/instrumentation` preventing the declared dependency rage of `^0.49.1` from being able to pull in any releases with only minor changes:\r\n\r\nhttps://github.com/Azure/azure-sdk-for-js/blob/c6b79e3f1bfd106825ba1e99bbab192eaeea146f/sdk/instrumentation/opentelemetry-instrumentation-azure-sdk/package.json#L75\r\n\r\nIt's unreasonable to expect the `@azure/opentelemetry-instrumentation-azure-sdk` package maintainers to subscribe to alerts every time a `@opentelemetry/instrumentation` v0.x is published (how can they even really do that? It's a mono repo so subscribing in GitHub to releases would spam them with releases of other packages) and manually cut a new release adjusting their `@opentelemetry/instrumentation` dependency up a 0.x increment.\r\n\r\nNow as a consumer, I'm in the awkward position of having to remind (beg) third party packages to bump their v0.x dependency versions, or try to set some sort of package.json resolution overrides to force deduplication to one particular v0.x version. But because there is no signal in v0.x version numbers if there are breaking changes or only minor changes, you have to try to sift through mono repo release notes interspersed with other package release notes and if you can't find them or they aren't detailed enough to tell if updating is safe; reverse engineer the commits or code in each release to try to figure it out manually yourself if there are breaking change. But, let's say you realize there were breaking changes in the release. Is it safe to update? Maybe you have knowledge enough about your own project code to know that, but now you have to have expert knowledge of all the third party dependencies using it also to be able to know it's safe to force the package resolutions to the newer version for all node_modules.\r\n\r\nPlease, just never use v0.x.x. Just go straight to v1 and go from there. Can you please move all `@opentelemetry` packages to at least v1? Thanks.","reactions":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/comments/2002762001","html_url":"https://github.com/open-telemetry/opentelemetry-js/issues/4548#issuecomment-2002762001","issue_url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/4548","id":2002762001,"node_id":"IC_kwDOCxSf3853X7kR","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-18T02:25:28Z","updated_at":"2024-03-18T02:25:28Z","author_association":"CONTRIBUTOR","body":"> It's an anti pattern to publish any package, for any reason, with a SemVer 0.x.x version.\r\n\r\nNo, SemVer says:\r\n\r\n> Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.\r\n\r\nThe experimental packages are 0.y.z, the experimental ones are not.","reactions":{"url":"https://api.github.com/repos/open-telemetry/opentelemetry-js/issues/comments/2002762001/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-18T02:25:29Z","org":{"id":49998002,"login":"open-telemetry","gravatar_id":"","url":"https://api.github.com/orgs/open-telemetry","avatar_url":"https://avatars.githubusercontent.com/u/49998002?"}},{"id":"36609723598","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":681142440,"name":"redoapp/redo-dev","url":"https://api.github.com/repos/redoapp/redo-dev"},"payload":{"repository_id":681142440,"push_id":17572526988,"size":1,"distinct_size":1,"ref":"refs/heads/release/2.2","head":"0120d0e1aadbbc111c26f1bbcea8ae8481fd930b","before":"6acdce2a731050f7809f89374c583811d6efdab7","commits":[{"sha":"0120d0e1aadbbc111c26f1bbcea8ae8481fd930b","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Fix path param for get return","distinct":true,"url":"https://api.github.com/repos/redoapp/redo-dev/commits/0120d0e1aadbbc111c26f1bbcea8ae8481fd930b"}]},"public":true,"created_at":"2024-03-16T14:41:46Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36592133649","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":681142440,"name":"redoapp/redo-dev","url":"https://api.github.com/repos/redoapp/redo-dev"},"payload":{"repository_id":681142440,"push_id":17563188557,"size":1,"distinct_size":1,"ref":"refs/heads/release/2.2","head":"6acdce2a731050f7809f89374c583811d6efdab7","before":"5af76365d5f9b1ff138a9a953df10b74e354a15d","commits":[{"sha":"6acdce2a731050f7809f89374c583811d6efdab7","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Clean up problem details schema","distinct":true,"url":"https://api.github.com/repos/redoapp/redo-dev/commits/6acdce2a731050f7809f89374c583811d6efdab7"}]},"public":true,"created_at":"2024-03-15T16:03:03Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36500663204","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":619232328,"name":"redoapp/rules_terraform","url":"https://api.github.com/repos/redoapp/rules_terraform"},"payload":{"repository_id":619232328,"push_id":17518619758,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"fe25cc3d47c75c35c884f54307660d705d2311a8","before":"02be6e4e59dd2a00ce9662255b9f83526ee73db3","commits":[{"sha":"fe25cc3d47c75c35c884f54307660d705d2311a8","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Hide synthensizing output","distinct":true,"url":"https://api.github.com/repos/redoapp/rules_terraform/commits/fe25cc3d47c75c35c884f54307660d705d2311a8"}]},"public":true,"created_at":"2024-03-13T07:52:00Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36500531462","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":619232328,"name":"redoapp/rules_terraform","url":"https://api.github.com/repos/redoapp/rules_terraform"},"payload":{"repository_id":619232328,"push_id":17518555929,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"02be6e4e59dd2a00ce9662255b9f83526ee73db3","before":"4c0b9b4d83efb9eef14e16728d73675e3fe2ab01","commits":[{"sha":"02be6e4e59dd2a00ce9662255b9f83526ee73db3","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Hide synthensizing output","distinct":true,"url":"https://api.github.com/repos/redoapp/rules_terraform/commits/02be6e4e59dd2a00ce9662255b9f83526ee73db3"}]},"public":true,"created_at":"2024-03-13T07:46:47Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36500391667","type":"PushEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":740319245,"name":"redoapp/rules_javascript","url":"https://api.github.com/repos/redoapp/rules_javascript"},"payload":{"repository_id":740319245,"push_id":17518487276,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"72c7bcf3009c36c556f5b6dca2cb2b76dd327609","before":"ee44e8e33505c90228f5b52f8c881ed2b5255408","commits":[{"sha":"72c7bcf3009c36c556f5b6dca2cb2b76dd327609","author":{"email":"paulddraper@gmail.com","name":"Paul Draper"},"message":"Silence successful webpack build output","distinct":true,"url":"https://api.github.com/repos/redoapp/rules_javascript/commits/72c7bcf3009c36c556f5b6dca2cb2b76dd327609"}]},"public":true,"created_at":"2024-03-13T07:41:09Z","org":{"id":64082150,"login":"redoapp","gravatar_id":"","url":"https://api.github.com/orgs/redoapp","avatar_url":"https://avatars.githubusercontent.com/u/64082150?"}},{"id":"36495082292","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":165926555,"name":"Snowflake-Labs/terraform-provider-snowflake","url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611","repository_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake","labels_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611/labels{/name}","comments_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611/comments","events_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611/events","html_url":"https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/2611","id":2179375395,"node_id":"I_kwDOCePWm86B5qEj","number":2611,"title":"Grant ownership on database role","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"labels":[{"id":2056342640,"node_id":"MDU6TGFiZWwyMDU2MzQyNjQw","url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/labels/general-usage","name":"general-usage","color":"FBCA04","default":false,"description":"General help/usage questions"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-03-11T15:05:37Z","updated_at":"2024-03-13T02:51:44Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"### Terraform CLI and Provider Versions\r\n\r\nTerraform v1.5.7\r\non darwin_arm64\r\n\r\n### Terraform Configuration\r\n\r\n```terraform\r\nsnowflake_database_role_ownership_grant \"example\" {\r\n on_database_role_name: \"EXAMPLE_DB.EXAMPLE_DB_ROLE\"\r\n to_role_name: \"EXAMPLE_ACCOUNT_ROLE\"\r\n}\r\n```\r\n\r\n\r\n### Expected Behavior\r\n\r\nIt worked\r\n\r\n### Actual Behavior\r\n\r\nsnowflake_database_role_ownership_grant doesn't exist \r\n\r\n### Steps to Reproduce\r\n\r\n1. `terraform apply`\r\n\r\n\r\n### How much impact is this issue causing?\r\n\r\nHigh\r\n\r\n### Logs\r\n\r\n_No response_\r\n\r\n### Additional Information\r\n\r\nI've tried every other incantation I can think of.\r\n\r\nI can *create* database roles, I can *grant* database roles, I can *grant privileges* to database roles, but I cannot grant ownership.","reactions":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/comments/1993231157","html_url":"https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/2611#issuecomment-1993231157","issue_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2611","id":1993231157,"node_id":"IC_kwDOCePWm852zks1","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-13T02:51:43Z","updated_at":"2024-03-13T02:51:43Z","author_association":"NONE","body":"@sfc-gh-asawicki , no #2610 is about `snowflake_database_grant`, `snowflake_stream_grant`, etc being deprecated without suitable replacements.\r\n\r\nThis issue is that database role ownership is completely unsupported, even ignoring deprecated resource.\r\n\r\nThanks for suggesting `unsafe_execute`. The primary problem with that resource is that it offers no drift detection like other Terraform resources.","reactions":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/comments/1993231157/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-13T02:51:44Z","org":{"id":58992620,"login":"Snowflake-Labs","gravatar_id":"","url":"https://api.github.com/orgs/Snowflake-Labs","avatar_url":"https://avatars.githubusercontent.com/u/58992620?"}},{"id":"36458022514","type":"IssueCommentEvent","actor":{"id":1403271,"login":"pauldraper","display_login":"pauldraper","gravatar_id":"","url":"https://api.github.com/users/pauldraper","avatar_url":"https://avatars.githubusercontent.com/u/1403271?"},"repo":{"id":165926555,"name":"Snowflake-Labs/terraform-provider-snowflake","url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559","repository_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake","labels_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559/labels{/name}","comments_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559/comments","events_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559/events","html_url":"https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/2559","id":2154683491,"node_id":"I_kwDOCePWm86Abdxj","number":2559,"title":"could not show security integration err = error scanning struct err = sql: no rows in result set","user":{"login":"nicolamarangoni","id":7083416,"node_id":"MDQ6VXNlcjcwODM0MTY=","avatar_url":"https://avatars.githubusercontent.com/u/7083416?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolamarangoni","html_url":"https://github.com/nicolamarangoni","followers_url":"https://api.github.com/users/nicolamarangoni/followers","following_url":"https://api.github.com/users/nicolamarangoni/following{/other_user}","gists_url":"https://api.github.com/users/nicolamarangoni/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolamarangoni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolamarangoni/subscriptions","organizations_url":"https://api.github.com/users/nicolamarangoni/orgs","repos_url":"https://api.github.com/users/nicolamarangoni/repos","events_url":"https://api.github.com/users/nicolamarangoni/events{/privacy}","received_events_url":"https://api.github.com/users/nicolamarangoni/received_events","type":"User","site_admin":false},"labels":[{"id":1949108161,"node_id":"MDU6TGFiZWwxOTQ5MTA4MTYx","url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/labels/bug","name":"bug","color":"B60205","default":true,"description":"Used to mark issues with provider's incorrect behavior"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-02-26T17:09:04Z","updated_at":"2024-03-12T03:39:41Z","closed_at":"2024-02-27T09:18:17Z","author_association":"NONE","active_lock_reason":null,"body":"### Terraform CLI and Provider Versions\n\nSnowflake Provider 0.86\n\n### Terraform Configuration\n\n```terraform\nresource \"snowflake_saml_integration\" \"saml_integration\" {\r\n name = \"SAML_INTEGRATION\"\r\n enabled = true\r\n saml2_enable_sp_initiated = true\r\n saml2_provider = \"ADFS\"\r\n saml2_issuer = \"https://sts.windows.net/UUID/\"\r\n saml2_sso_url = \"https://login.microsoftonline.com/UUID/saml2\"\r\n saml2_x509_cert = jsondecode(data.aws_secretsmanager_secret_version.azure_app.secret_string)[\"saml2_x509_cert\"]\r\n}\n```\n\n\n### Expected Behavior\n\n`terragrunt import snowflake_saml_integration.saml_integration saml_integration` successfully import the existing SAML integration\n\n### Actual Behavior\n\n```\r\n% terragrunt import snowflake_saml_integration.saml_integration saml_integration\r\n...\r\n...\r\nsnowflake_saml_integration.saml_integration: Importing from ID \"saml_integration\"...\r\nsnowflake_saml_integration.saml_integration: Import prepared!\r\n Prepared snowflake_saml_integration for import\r\nsnowflake_saml_integration.saml_integration: Refreshing state... [id=saml_integration]\r\n...\r\n...\r\n│ Error: could not show security integration err = error scanning struct err = sql: no rows in result set\r\n│\r\n```\n\n### Steps to Reproduce\n\n`terragrunt import snowflake_saml_integration.saml_integration saml_integration`\r\n\n\n### How much impact is this issue causing?\n\nMedium\n\n### Logs\n\n_No response_\n\n### Additional Information\n\n_No response_","reactions":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559/timeline","performed_via_github_app":null,"state_reason":"completed"},"comment":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/comments/1990081306","html_url":"https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/2559#issuecomment-1990081306","issue_url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/2559","id":1990081306,"node_id":"IC_kwDOCePWm852njsa","user":{"login":"pauldraper","id":1403271,"node_id":"MDQ6VXNlcjE0MDMyNzE=","avatar_url":"https://avatars.githubusercontent.com/u/1403271?v=4","gravatar_id":"","url":"https://api.github.com/users/pauldraper","html_url":"https://github.com/pauldraper","followers_url":"https://api.github.com/users/pauldraper/followers","following_url":"https://api.github.com/users/pauldraper/following{/other_user}","gists_url":"https://api.github.com/users/pauldraper/gists{/gist_id}","starred_url":"https://api.github.com/users/pauldraper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pauldraper/subscriptions","organizations_url":"https://api.github.com/users/pauldraper/orgs","repos_url":"https://api.github.com/users/pauldraper/repos","events_url":"https://api.github.com/users/pauldraper/events{/privacy}","received_events_url":"https://api.github.com/users/pauldraper/received_events","type":"User","site_admin":false},"created_at":"2024-03-12T03:39:40Z","updated_at":"2024-03-12T03:39:40Z","author_association":"NONE","body":"Note: This is the error received when there is no security integration by that name; i.e. it was not found.","reactions":{"url":"https://api.github.com/repos/Snowflake-Labs/terraform-provider-snowflake/issues/comments/1990081306/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-12T03:39:42Z","org":{"id":58992620,"login":"Snowflake-Labs","gravatar_id":"","url":"https://api.github.com/orgs/Snowflake-Labs","avatar_url":"https://avatars.githubusercontent.com/u/58992620?"}}]