A small menubar app that allows you to switch between R versions quickly (if you have multiple versions of R framework installed).
https://rud.is/rswitch
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
376 lines
8.0 KiB
376 lines
8.0 KiB
<!DOCTYPE html>
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="pandoc" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
|
|
|
|
|
|
|
|
|
|
<title>Developing RSwitch</title>
|
|
|
|
<script src="site_libs/jquery-1.11.3/jquery.min.js"></script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<link href="site_libs/bootstrap-3.3.5/css/darkly.min.css" rel="stylesheet" />
|
|
<script src="site_libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
|
|
<script src="site_libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
|
|
<script src="site_libs/bootstrap-3.3.5/shim/respond.min.js"></script>
|
|
<script src="site_libs/navigation-1.1/tabsets.js"></script>
|
|
<link href="site_libs/highlightjs-9.12.0/default.css" rel="stylesheet" />
|
|
<script src="site_libs/highlightjs-9.12.0/highlight.js"></script>
|
|
|
|
<style type="text/css">code{white-space: pre;}</style>
|
|
<style type="text/css">
|
|
pre:not([class]) {
|
|
background-color: white;
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
if (window.hljs) {
|
|
hljs.configure({languages: []});
|
|
hljs.initHighlightingOnLoad();
|
|
if (document.readyState && document.readyState === "complete") {
|
|
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
|
|
<style type="text/css">
|
|
h1 {
|
|
font-size: 34px;
|
|
}
|
|
h1.title {
|
|
font-size: 38px;
|
|
}
|
|
h2 {
|
|
font-size: 30px;
|
|
}
|
|
h3 {
|
|
font-size: 24px;
|
|
}
|
|
h4 {
|
|
font-size: 18px;
|
|
}
|
|
h5 {
|
|
font-size: 16px;
|
|
}
|
|
h6 {
|
|
font-size: 12px;
|
|
}
|
|
.table th:not([align]) {
|
|
text-align: left;
|
|
}
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<style type = "text/css">
|
|
.main-container {
|
|
max-width: 940px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
code {
|
|
color: inherit;
|
|
background-color: rgba(0, 0, 0, 0.04);
|
|
}
|
|
img {
|
|
max-width:100%;
|
|
height: auto;
|
|
}
|
|
.tabbed-pane {
|
|
padding-top: 12px;
|
|
}
|
|
.html-widget {
|
|
margin-bottom: 20px;
|
|
}
|
|
button.code-folding-btn:focus {
|
|
outline: none;
|
|
}
|
|
summary {
|
|
display: list-item;
|
|
}
|
|
</style>
|
|
|
|
|
|
<style type="text/css">
|
|
/* padding for bootstrap navbar */
|
|
body {
|
|
padding-top: 60px;
|
|
padding-bottom: 40px;
|
|
}
|
|
/* offset scroll position for anchor links (for fixed navbar) */
|
|
.section h1 {
|
|
padding-top: 65px;
|
|
margin-top: -65px;
|
|
}
|
|
.section h2 {
|
|
padding-top: 65px;
|
|
margin-top: -65px;
|
|
}
|
|
.section h3 {
|
|
padding-top: 65px;
|
|
margin-top: -65px;
|
|
}
|
|
.section h4 {
|
|
padding-top: 65px;
|
|
margin-top: -65px;
|
|
}
|
|
.section h5 {
|
|
padding-top: 65px;
|
|
margin-top: -65px;
|
|
}
|
|
.section h6 {
|
|
padding-top: 65px;
|
|
margin-top: -65px;
|
|
}
|
|
.dropdown-submenu {
|
|
position: relative;
|
|
}
|
|
.dropdown-submenu>.dropdown-menu {
|
|
top: 0;
|
|
left: 100%;
|
|
margin-top: -6px;
|
|
margin-left: -1px;
|
|
border-radius: 0 6px 6px 6px;
|
|
}
|
|
.dropdown-submenu:hover>.dropdown-menu {
|
|
display: block;
|
|
}
|
|
.dropdown-submenu>a:after {
|
|
display: block;
|
|
content: " ";
|
|
float: right;
|
|
width: 0;
|
|
height: 0;
|
|
border-color: transparent;
|
|
border-style: solid;
|
|
border-width: 5px 0 5px 5px;
|
|
border-left-color: #cccccc;
|
|
margin-top: 5px;
|
|
margin-right: -10px;
|
|
}
|
|
.dropdown-submenu:hover>a:after {
|
|
border-left-color: #ffffff;
|
|
}
|
|
.dropdown-submenu.pull-left {
|
|
float: none;
|
|
}
|
|
.dropdown-submenu.pull-left>.dropdown-menu {
|
|
left: -100%;
|
|
margin-left: 10px;
|
|
border-radius: 6px 0 6px 6px;
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
// manage active state of menu based on current page
|
|
$(document).ready(function () {
|
|
// active menu anchor
|
|
href = window.location.pathname
|
|
href = href.substr(href.lastIndexOf('/') + 1)
|
|
if (href === "")
|
|
href = "index.html";
|
|
var menuAnchor = $('a[href="' + href + '"]');
|
|
|
|
// mark it active
|
|
menuAnchor.parent().addClass('active');
|
|
|
|
// if it's got a parent navbar menu mark it active as well
|
|
menuAnchor.closest('li.dropdown').addClass('active');
|
|
});
|
|
</script>
|
|
|
|
<!-- tabsets -->
|
|
|
|
<style type="text/css">
|
|
.tabset-dropdown > .nav-tabs {
|
|
display: inline-table;
|
|
max-height: 500px;
|
|
min-height: 44px;
|
|
overflow-y: auto;
|
|
background: white;
|
|
border: 1px solid #ddd;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs > li.active:before {
|
|
content: "";
|
|
font-family: 'Glyphicons Halflings';
|
|
display: inline-block;
|
|
padding: 10px;
|
|
border-right: 1px solid #ddd;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
|
|
content: "";
|
|
border: none;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
|
|
content: "";
|
|
font-family: 'Glyphicons Halflings';
|
|
display: inline-block;
|
|
padding: 10px;
|
|
border-right: 1px solid #ddd;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs > li.active {
|
|
display: block;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs > li > a,
|
|
.tabset-dropdown > .nav-tabs > li > a:focus,
|
|
.tabset-dropdown > .nav-tabs > li > a:hover {
|
|
border: none;
|
|
display: inline-block;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
|
|
display: block;
|
|
float: none;
|
|
}
|
|
|
|
.tabset-dropdown > .nav-tabs > li {
|
|
display: none;
|
|
}
|
|
</style>
|
|
|
|
<!-- code folding -->
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
<div class="container-fluid main-container">
|
|
|
|
|
|
|
|
|
|
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
<a class="navbar-brand" href="index.html">RSwitch</a>
|
|
</div>
|
|
<div id="navbar" class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav">
|
|
<li>
|
|
<a href="index.html">Use</a>
|
|
</li>
|
|
<li>
|
|
<a href="develop.html">Develop</a>
|
|
</li>
|
|
<li>
|
|
<a href="acknowledgements.html">Acknowledgements</a>
|
|
</li>
|
|
<li>
|
|
<a href="https://rud.is/rswitch">Landing Page</a>
|
|
</li>
|
|
</ul>
|
|
<ul class="nav navbar-nav navbar-right">
|
|
|
|
</ul>
|
|
</div><!--/.nav-collapse -->
|
|
</div><!--/.container -->
|
|
</div><!--/.navbar -->
|
|
|
|
<div class="fluid-row" id="header">
|
|
|
|
|
|
|
|
<h1 class="title toc-ignore">Developing RSwitch</h1>
|
|
|
|
</div>
|
|
|
|
|
|
<p>Contributions to RSwitch are welcome and encouraged!</p>
|
|
<p>You will need:</p>
|
|
<ul>
|
|
<li><a href="https://developer.apple.com/xcode/">Xcode 11</a> (still in beta as of this writing)</li>
|
|
<li>Familiarity with <a href="https://swift.org/blog/swift-5-released/">Swift 5.x</a></li>
|
|
<li>Tolerance to use one of the following social coding sites:
|
|
<ul>
|
|
<li><a href="https://git.rud.is/hrbrmstr/RSwitch">My self-hosted Gitea instance</a></li>
|
|
<li><a href="https://git.sr.ht/~hrbrmstr/RSwitch">SourceHut</a></li>
|
|
<li><a href="https://gitlab.com/hrbrmstr/RSwitch">GitLab</a></li>
|
|
<li><a href="https://bitbucket.com/hrbrmstr/RSwitch">Bitbucket</a></li>
|
|
<li><a href="https://github.com/hrbrmstr/RSwitch">GitHub</a></li>
|
|
</ul></li>
|
|
<li>The ability to use <a href="https://git-scm.com/book/ms/v2/Git-Tools-Signing-Your-Work">signed git commits</a></li>
|
|
</ul>
|
|
<p>To work on anything related to RSwitch:</p>
|
|
<ul>
|
|
<li>claim or file a new issue</li>
|
|
<li>get concensus on the feature/change</li>
|
|
<li>develop and test on a fork & branch</li>
|
|
<li>share a copy of the app back to the folks monitoring the issue</li>
|
|
<li>submit a PR once the feature/change has been finalized</li>
|
|
</ul>
|
|
|
|
<hr noshade size=1/>
|
|
<p>Copyright © 2019 Bob Rudis. All rights reserved.</p>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<script>
|
|
|
|
// add bootstrap table styles to pandoc tables
|
|
function bootstrapStylePandocTables() {
|
|
$('tr.header').parent('thead').parent('table').addClass('table table-condensed');
|
|
}
|
|
$(document).ready(function () {
|
|
bootstrapStylePandocTables();
|
|
});
|
|
|
|
|
|
</script>
|
|
|
|
<!-- tabsets -->
|
|
|
|
<script>
|
|
$(document).ready(function () {
|
|
window.buildTabsets("TOC");
|
|
});
|
|
|
|
$(document).ready(function () {
|
|
$('.tabset-dropdown > .nav-tabs > li').click(function () {
|
|
$(this).parent().toggleClass('nav-tabs-open')
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<!-- code folding -->
|
|
|
|
|
|
<!-- dynamically load mathjax for compatibility with self-contained -->
|
|
<script>
|
|
(function () {
|
|
var script = document.createElement("script");
|
|
script.type = "text/javascript";
|
|
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
|
|
document.getElementsByTagName("head")[0].appendChild(script);
|
|
})();
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|
|
|