') + ')', '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('^' + ".*" + ', '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" + ', '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('^' + ".*" + ', '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); } })(); })(); feat(gazelle): Add `include_pytest_conftest` annotation by dougthor42 · Pull Request #3080 · bazel-contrib/rules_python · GitHub
Skip to content

feat(gazelle): Add include_pytest_conftest annotation - #3080

Merged
aignas merged 8 commits into
bazel-contrib:mainfrom
dougthor42:u/dthor/gazelle-conftest-annotation-gh3076
Jul 15, 2025
Merged

feat(gazelle): Add include_pytest_conftest annotation#3080
aignas merged 8 commits into
bazel-contrib:mainfrom
dougthor42:u/dthor/gazelle-conftest-annotation-gh3076

Conversation

@dougthor42

@dougthor42dougthor42 commented Jul 11, 2025

Copy link
Copy Markdown
Collaborator

Fixes#3076.

Add a new gazelle annotation include_pytest_conftest. When unset
or true, the gazelle behavior is unchanged. When false, gazelle will
not inject the :conftest dependency to py_test targets.

One of the refactorings that is done to support this is to pass around
an annotations struct in target.targetBuilder. This will also open
up support for other annotations in the future.

@dougthor42dougthor42 added the gazelle Gazelle plugin related issues label Jul 11, 2025
@dougthor42
dougthor42 marked this pull request as ready for review July 11, 2025 23:51
@dougthor42
dougthor42 enabled auto-merge July 14, 2025 23:59
@dougthor42
dougthor42 added this pull request to the merge queueJul 15, 2025
@github-merge-queue
github-merge-queueBot removed this pull request from the merge queue due to a conflict with the base branch Jul 15, 2025
@aignas
aignas enabled auto-merge July 15, 2025 01:16
@aignas
aignas added this pull request to the merge queueJul 15, 2025
Merged via the queue into bazel-contrib:main with commit a97b98cJul 15, 2025
1 check passed
@dougthor42
dougthor42 deleted the u/dthor/gazelle-conftest-annotation-gh3076 branch July 15, 2025 03:20
@thejcannonthejcannon mentioned this pull request Oct 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gazelleGazelle plugin related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation: include/ignore conftest

3 participants

@dougthor42@aignas@rickeylev