Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Make gazelle_python_manifest output deterministic by abhishekshivanna · Pull Request #813 · bazel-contrib/rules_python · GitHub
Skip to content

Make gazelle_python_manifest output deterministic - #813

Merged
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812
Aug 30, 2022
Merged

Make gazelle_python_manifest output deterministic#813
f0rmiga merged 3 commits into
bazel-contrib:mainfrom
abhishekshivanna:issue_812

Conversation

@abhishekshivanna

Copy link
Copy Markdown
Contributor

When invoking the update rule on gazelle_python_manifest
the output generated to gazelle_python.yaml mapping file
is not deterministic.
This non-determinism causes the test rule for gazelle_python_manifest
to always fail.
This patch fixes the bug by sorting the keys before writing it to the
mapping file, making the output deterministic

Test Plan: Existing unit tests to verify the output

Fixes#812

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #812

What is the new behavior?

See commit summary

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@google-cla

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
Comment threadgazelle/manifest/manifest.go Outdated
@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for the contribution!

@f0rmiga

Copy link
Copy Markdown
Member

@abhishekshivanna thanks for addressing my comments.

@f0rmiga
f0rmiga merged commit 0dfc546 into bazel-contrib:mainAug 30, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Output generated by gazelle_python_manifest is not deterministic

2 participants

@abhishekshivanna@f0rmiga