Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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" + '
added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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('^' + ".*" + ' added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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('^' + ".*" + ' added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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" + ' added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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('^' + ".*" + ' added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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('^' + ".*" + ' added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid
, '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); } })(); })(); added methods for committer, sha, branch, commit message by benmarwick · Pull Request #136 · ropensci/git2r · GitHub
Skip to content

added methods for committer, sha, branch, commit message - #136

Open
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message
Open

added methods for committer, sha, branch, commit message#136
benmarwick wants to merge 1 commit into
ropensci:mainfrom
benmarwick:methods-for-committer,-sha,-branch,-commit-message

Conversation

@benmarwick

Copy link
Copy Markdown

An attempt to address #135. This is the first time I've worked with S4 objects so please let me know how to make it better. Probably some redundant @export lines in there...

@benmarwick

Copy link
Copy Markdown
Author

Thanks very much for your detailed comments. I'll work on them and make some more commits to this PR.

@krlmlr

Copy link
Copy Markdown
Contributor

@stewid: Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

It might be possible to auto-generate these accessors from the S4 class definitions, and then change them to S3 (in the master branch) with some search and replace. But we need tests too. Prefix for the new functions: git_get_ or ggit_ or gitg_?

For tic and other code, I'm working around this problem. Asking here because it might be of interest to other git2r users and dependent packages.

@stewid

Copy link
Copy Markdown
Member

Accessors become important to ensure compatibility between the S4 version 0.21.0 and the new S3 code. Is it too late to release 0.21.1 that has these accessors (like in the S4-classes branch) which then could be used to write code that works both with git2r 0.21.1 and subsequent S3-based releases?

That was initially my plan (r-lib/devtools#1719). However, I don't think it's realistic anymore to release 0.21.1, since version 0.21.0 has a CRAN check warning on macOS that is related to building the bundled libgit2. In the master branch, the configuration has been refactored to use a system installation of libgit2 (if available). Unfortunately, it's not as simple as copying the configuration from the master branch to the S4-classes branch since 0.21 is using internal functionality in libgit2 not available in a system installation. A recent improvement in the master branch is that it's only using functions in the public libgit2 API #345#344#336. So I guess it's to much work to copy those changes over to the S4-classes branch.

@krlmlr

Copy link
Copy Markdown
Contributor

Thanks for the heads-up. I'm fine with my workaround: https://github.com/ropenscilabs/tic/blob/a2e69a39401d30952319d59a1a34237d1e85da16/R/git2r.R.

@stewid

Copy link
Copy Markdown
Member

Nice, it's an elegant workaround.

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.

3 participants

@benmarwick@krlmlr@stewid