Contribute to Open Source. Search issue labels to find the right project for you!

Provide benchmarks & documentation for used concatenative clone-families algorithms.


In the experimental lua-51 branch I using a split & scan algorithm where the cloning split the current original prototype in two, the former part will be the new structure for the prototype and the latter, the structure/dictionary for clone object. With that approach, I have achieved support for Lua v5.1 while maintaining the Clone early, Clone often lemma. This kind of implementation is in some sense asynchronous, cause the evaluation order of super-structure scanning is unknown until runtime. The whole super/original structure/dictionary can be iterated entirely, or just a few (mostly due pairs function semantics). That implementation relies on coroutines rather than master branch finalizers. The respective scanners hold strong references for such parent structure, but not the objects (the clone & prototype, they won’t ever notice that super structure). The scanner copies lazily the fields from that parent structure, when the scan process finishes, it collects itself, thus, decreasing the pointer/counter for that super structure (which will be prone to GC).

Updated 20/08/2017 02:59

WIP: DOC: add a SciPy Code of Conduct.


Main discussion for this on the mailing list.

To be done:

  • [ ] decide what email address to use ( may be hard to set up or taken by the SciPy conference).
  • [ ] move this from Markdown to reST and integrate with the rest of the docs
  • [ ] add a top-level CODE_OF_CONDUCT file which links to this content
Updated 20/08/2017 03:21

Commit message guidelines


Personal Checklist

For all issues, makes sure you have completed these tasks - [x] - I have read the CODE OF CONDUCT. - [x] - I have read the CONTRIBUTING guidelines.


The project does not have a commit message guideline.


Like Issue and Pull Request Templates, a guide for writing commit messages will keep us organized and increase the amount of information we can put in commits.


This document seems to cover everything we want to add just fine. Our proposed resolution is therefore to add this to the CONTRIBUTING file.

Task List

  • [ ] - Research a resolution

My Running Environment

  • OS: Windows 10 Home x64
  • CPU: Intel i7 960 3.20GHz
  • RAM: DDR3 12.0GB
  • GPU: NVIDIA GeForce GTX 970 1.2GHz 6GB VRAM
Updated 19/08/2017 22:30

Add keybinding info to online documentation


Currently you only get keybinding info if you use the built-in documentation browser.

Fairly straight-forward implementation: instead of modifying the doc HTML by inserting introspected binding information, parse it out of the modules, by extracting the Lua code for the bindings and executing it in a wrapper environment that provides stubs for add_binds/add_cmds. Most likely will have to wrap the binds Lua in marker comments.

Updated 19/08/2017 15:36

Document support for Android


Follow on from Relates to this issue

My own testing shows Reactor works nicely in SDK 26 (Android O Developer Preview). But fails on SDK 24 due to usage of java.time.

This task is just a request to document whether you support Android, under what conditions. e.g. one of:

  • Android is not supported, if it works for you then great.
  • Android SDK 26 is supported. If something breaks it will be fixed.
  • Android SDK 24 is supported if you avoid methods with java.time params, and internal usage will be avoided also.
Updated 19/08/2017 21:02 2 Comments

Bad Docs, Bad Recipe 🍒


A chef has kindly provided us with a markdown file of her best cherry pie recipe, which we will eventually convert to HTML and add to the website. Unfortunately, while the chef is an excellent baker, she is not very good at documentation. Steps are missing from her recipe, and typos are everywhere.

  • [] Open
  • [] Fix the typos in the recipe and add any steps that you think are missing.
  • [] Merge the file into master

Please submit your PR with a checklist, showing that you have done these three things.

BONUS #1: Completely throw out the old recipe and add in your own. BONUS #2: Squash your commits.

Updated 19/08/2017 06:11

In The Margins edits


In “Scrub > In The Margins > Additional Options > 1. Stop Words/Keep Words”, there is a <b> </b> tag that printed (the phrase inside is not bold).

In “Scrub > In The Margins > The Lexos Scrubber Algorithm > When The Preview…”, the phrase Apply Scrubbing is in double asterisks. This is inconsistent with the previous formatting and should be bold.

In “Cut > In The Margins > Cutting Options” in the first sentence, “document” should be plural.

In “Tokenizer > In The Margins > The Tokenize/Count Tool”, the second paragraph ends before its final sentence does. I recommend appending “ applications.”

Something to think about - Drout’s Rolling Window video mentions other videos. Where are the other videos? Also, Rolling Window is well-explained in the In The Margins text. Why have that one video be an anomaly?

For “Statistics > Assign Temporary Labels”, the tool tip icon does not show the tool tip.

In “Cluster > In The Margins”, the hyperlink in the first paragraph is broken.

In “Cluster > In The Margins > Downloading Dendrograms”, the “scipy clustering package” hyperlink 404s.

In “Kmeans > K-Means Options > Method of Visualization”, the tool tip disappears before the user can click on the links.

In “Kmeans > Culling Options”, the drop down arrow does not turn.

In “Similarity > Select Comparison Document”, the text formatting is inconsistent and the text box not correctly sized in the floating window.

In “Similarity > Culling Options”, the drop down arrow does not turn.

In “Topword”, the placement of “Assign Temporary Labels” is inconsistent.

I have added many of the missing definitions in addition to all of the distance metrics and linkages. However, there is still more to do. The following should be defined: -Flat Cluster Analysis -K-Means Clustering -Normalization -Rolling Window Analysis -Scrubbing -Unicode

Also, in the glossary, italization and boldening are not used consistently.

The full version of In The Margins requires massive rewrites; there are editorial notes interspersed with the text on most pages and the content is not up-to-date with the code.

Updated 19/08/2017 04:23

Typos in v0.3.2 documentation


There are still some typos in the updated docs

  • Quick start section of getting started still about the layer folders and the sample model.json file
  • ~Seems like monthly timestamps disappeared in the outputs tutorial example!~ Nope, the way it is, is the way it’s always been, no timesheets needed for months, ha! ha! ha! So silly!
  • Layer classes called parameters and parameters called specifications - inconsistent usage
  • Parameter file section in calculations is copied from outputs and has references to outputs instead of calcs, also says that make another new module
  • Should parameter file discussions explain somewhere that carousel will expect there to be layer folders, yuk
  • Typo in inconstant note, “To ~include~ propagate …”. Remove “include” I think.
Updated 20/08/2017 02:21 1 Comments




The project currently does not have a file


A allows our contributors to describe the features of their pull request in a standardized way. Refer to GitHub’s mention on the subject for more information on why this is helpful.


This repo seems to have a good list of templates to select from. It may be a good idea to just take one of theirs if any seem fitting.

Possible things to mention/check off: * Does the pull request pass all unit tests? * Are the commit messages formatted according to the CONTRIBUTING file? * Is a test/benchmark included for the new feature/bug fix? * Does the documentation reflect this change (if necessary)? * Is there a duplicate/close duplicate pull request already present? * Does this request close any open issues? (If not, create an issue first) * Make sure your pull request does not target the master branch * Does your description fully describe the pull request’s changes? * Are there any screenshots you could provide that better illustrate your change? * Is this a breaking change? (Does it cause existing features to not work the same?) * Does your code follow the code styles enforced by the project?

Updated 19/08/2017 00:48

cmd/go: documentation unclear that `go run` command skips .go files starting with _ and . characters and requires .go files to be in same directory


What version of Go are you using (go version)?

go version go1.9rc2 darwin/amd64

What operating system and processor architecture are you using (go env)?


GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/tw/kgz4v2kn4n7d7ryg5k_z3dk40000gn/T/go-build182434083=/tmp/go-build -gno-record-gcc-switches -fno-common"


What did you do?

I read, it said:


go run [build flags] [-exec xprog] gofiles... [arguments...]

Run compiles and runs the main package comprising the named Go source files. A Go source file is defined to be a file ending in a literal “.go” suffix.

[more details that are not relevant]

Notice there are no restrictions on the prefix of the file, what directory it’s in, or what build constraints the file has.

Then I ran:

mkdir -p $GOPATH/src/new/package
cd $GOPATH/src/new/package
echo 'package main; import "fmt"; func main() { fmt.Println("go") }' > main.go
go run main.go
mv main.go 123.go
go run 123.go
mv 123.go _underscore.go
go run _underscore.go
mv _underscore.go .dot.go
go run .dot.go
mv .dot.go thisis.notgo
go run thisis.notgo
rm thisis.notgo
go run

(Credit goes to @natefinch for discovering this at

What did you expect to see?

go run: no go files listed
go run: no go files listed

What did you see instead?

package main: no Go files in /Users/Gopher/go/src/new/package
package main: no Go files in /Users/Gopher/go/src/new/package
go run: no go files listed
go run: no go files listed

It looks like the .go file starting with _ or . gets ignored, probably related to the logic go/build has to ignore files beginning with _ and . in normal Go packages.

Edit: Upon further reading, I think this section from applies and explains the behavior:

As a special case, if the package list is a list of .go files from a single directory, the command is applied to a single synthesized package made up of exactly those files, ignoring any build constraints in those files and ignoring any other files in the directory.

Directory and file names that begin with “.” or “_” are ignored by the go tool, as are directories named “testdata”.

Updated 20/08/2017 07:01 11 Comments

FtpWebRequest on core does not reuse connections


FtpWebRequest on .net core connects and disconnects for every operation:


Eventually hitting connection rate limit:


Same code on net461 reuses connection: image

Code: c# var request = (FtpWebRequest) WebRequest.Create(address); request.Method = WebRequestMethods.Ftp.UploadFile; request.KeepAlive = true; request.UseBinary = true; request.Credentials = new NetworkCredential(publishingProfile.FtpUsername, publishingProfile.FtpPassword); request.ConnectionGroupName = "group"; using (var fileStream = File.OpenRead(file.FullName)) { using (var requestStream = await request.GetRequestStreamAsync()) { await fileStream.CopyToAsync(requestStream); } } await request.GetResponseAsync();

Updated 19/08/2017 00:04 3 Comments

Update the onboarding info on


Even tho has been largely inactive, it hasn’t prevented new people to consistently join. As it remains the largest Drupal group, one of the most effective ways to reach and enage the community will be to update/organize the group to a point where contributors and learners know what to do.

This could be as simple as updating the intro blurb (if needed) as well as the pages linked under the ‘Would you like to learn? Become involved? Support the Dojo?’ bit.

Updated 20/08/2017 00:33 1 Comments

[getting started docs and tutorials]


Hi, This PR tries to improve the following:

  • Clarify in the documentation about the two programming methods program vs flash
  • Changed the tutorials a little bit and added a paragraph which boards are supported
  • Added additional method for programming for nRF5X since tockloader still don’t work for me personally!
  • Close #574


Updated 19/08/2017 08:51

[ios] Document annotations-as-features limitations w/feature querying


Addresses this @1ec5 comment from

We should definitely warn in the feature querying documentation that those methods may return annotations as features – the other way around – but those annotations-as-features aren’t object-equal to the ones that were added to the map. So we should recommend against using feature querying to get annotations.

Also reorders visibleAnnotations to be immediately above visibleAnnotationsInRect:.

Updated 18/08/2017 21:06

include copies of all license files for dependencies


I like the Apache Foundation’s common practice of having them all collected in a subdirectory at the root of the project.

E.g., from their LDAP API: Free--Fair-2:apache-ldap-api-1.0.0-bin> pwd /Users/kiniry/Sandboxes/LDAP/apache-ldap-api-1.0.0-bin Free--Fair-2:apache-ldap-api-1.0.0-bin> ls licenses/ antlr-LICENSE.txt xml-apis-LICENSE.dom-documentation.txt xml-apis-README.sax.txt dom4j-LICENSE.txt xml-apis-LICENSE.dom-software.txt xml-apis-README.txt jbcrypt-LICENSE.txt xml-apis-LICENSE.sax.txt xpp3-LICENSE.txt slf4j-LICENSE.txt xml-apis-README.dom.txt

Updated 18/08/2017 19:03

bad link in API docs


lifecycle_hooks.dart points to go/angular-dart-docs/ but should instead point to

We discovered this because @chalin was reviewing our link check skip patterns.

I looked for other go/ links but didn’t find any. I’ll fix this internally.

Updated 19/08/2017 00:08 1 Comments

Refactor project to use NodeJS


We’re having difficulties with the Ruby project so we’re looking at moving towards using a JS written document generation project.

Acceptance Criteria * [ ] Can generate the same ‘’ site locally but have the project in JS instead of Ruby * [ ] Can publish ‘’ to a non-official GH-Pages site * [ ] Can publish from inside continuous integration server

Updated 18/08/2017 22:42

Making a CONTRIBUTING file



Our project needs a thorough outline that details how contributions can best be submitted.


A CONTRIBUTING file tells your audience how to participate in your project. -Open Source Guides


I’m using the following resources to guide in designing a CONTRIBUTING file * Writing your contributing guidelines * Contributing Template * Mozilla Contributing Guidelines

Our CONTRIBUTING file should have the following sections

Warm Welcome

Thank the user for wanting to contribute to the project, and state the importance of getting to know the contributing guidelines


How to file bug reports

We should probably make a template for this. Important things to add would be * How to reproduce the bug * A stack trace if available * Screenshots if applicable

How to suggest a new feature

I’m not too sure where to take this one immediately. An issue template could help. One of the biggest problems is like “You should add support for X” where is very large and no extra information is given. So I guess a suggestion should be as detailed as the feature is large.

How to set up your environment and run tests

Provide a thorough guide on how to get started, successfully build the code, and run all tests to make sure they have a properly configured environment.

Code styles

I would like to have a set of enforceable code styles to avoid conflicting formatting styles from separate contributors.


The types of contributions we’re looking for.

Basically. We want to keep it within the scope of what our project actually does. The ambition is to have it do a lot, but we need to define set goals for it. Adding a VISION file (#5) could be a good idea.

Our vision for the project

Give a brief description of what it is we’re doing. Link to possible VISION file (#5).

How to get in contact

Provide an escalation tree for users to get in contact with me over any questions 1 Read the FAQ (when we make one) 2 Read full documentation referenced in FAQ (if applicable) 3 Submit an Issue (if applicable) 4 Contact via email (include in email why 1-3 did not help). Mention median response time.

Task List

  • [ ] - Warm Welcome
  • [ ] - How to file bug reports
  • [ ] - How to suggest a new feature
  • [ ] - How to set up your environment and run tests
  • [ ] - Code styles
  • [ ] - The types of contributions we’re looking for
  • [ ] - Our vision for the project
  • [ ] - How to get in contact
Updated 18/08/2017 17:45

Add a VISION file



We need a file that states what our project does/what we want it to do.


Having this file will help new contributors know exactly what we expect out of contributions and to not lose time trying to implement something we do not need.



Updated 18/08/2017 17:08

mstats.winsorize documentation needs clarification


stats.mstats.winsorize documentation needs some clarification:

From <quote> This shows the difference (look at the number of values at start/end that are identical):

In [11]: data
masked_array(data = [77 87 88 114 151 -- 219 246 253 262 296 299 306 376 428 515 666 1310 2611],
             mask = [False False False False False  True False False False False False False
 False False False False False False False],
       fill_value = 999999)

In [12]: mstats.winsorize(data, (0.2, 0.2))
masked_array(data = [114 114 114 114 151 515 219 246 253 262 296 299 306 376 428 515 515 515
             mask = [False False False False False False False False False False False False
 False False False False False False False],
       fill_value = 999999)

In [13]: mstats.winsorize(data, (0.2, 0.2), inclusive=(False, False))
masked_array(data = [151 151 151 151 151 428 219 246 253 262 296 299 306 376 428 428 428 428
             mask = [False False False False False False False False False False False False
 False False False False False False False],
       fill_value = 999999)

I think it’s the description of inclusive in the docstring that’s a little confusing, it talks about number of data being masked while the truncation is about indices used to construct the lowidx-upidx interval of data to keep. Can you try to reformulate that description? </quote>

Updated 18/08/2017 17:04

Clarify definition of Int type


Currently, the docs for Prim say that Int is a 32-bit signed integer. However, in, we seemed to be moving towards a consensus that the number of bits in an Int should be allowed to vary between platforms and backends.

Since there’s a bit of confusion regarding this type (e.g. “Why doesn’t it go up to Number.MAX_SAFE_INTEGER”) I’d like to clarify this. I think the options are:

  • Decide that Int really is exactly 32 bits
  • Define Int as a twos-complement signed integer with at least 32 bits
  • something slightly different from either of these? I’m not sure.

Whatever we decide we should update the Prim docs appropriately.

Updated 19/08/2017 19:24

Reflection, Query Builders and Scope Creep


What started out as a journey to implement reflection in Nebula… turned into a journey of reflecting inward… and also, I decided to change a lot of stuff.

Draft of release notes are below - I’ll update them here as I wrap up the pull request.


The framework now supports reflection for 5 interfaces. To utilise your own inteface implementation, open the custom metadata type ‘Nebula Interface Implementations’, find the record of the desired interface and enter the name of your Apex class. Nebula will then inject your code into the framework at runtime. 1. IAggregateResultQueryBuilder 2. IQueryArgumentFormatter 3. IQueryFilter 4. ISObjectQueryBuilder

To leverage Apex’s implementation of reflection, all relevant classes now use a parameterless constructor - any setup work needed has been moved from constructors to methods.

SObject Repository


  • All DML methods now return the corresponding list of database results - see IDML.cls. Previously, these were void methods. This change is inherited by SObjectRepository.cls as well (it extends DML.cls)


  • The member variable sobjectRepository.Query is now an instance of SObjectQueryBuilder.cls - see ‘Query Builders’ section for more info
  • New member variable sobjectRepository.AggregateQuery, an instance of the new class AggregateResultQueryBuilder.cls - see ‘Query Builders’ section for more info

Query Builders

QueryBuilder.cls has been split into SObjectQueryBuilder.cls & AggregateQueryBuilder.cls


  • QueryBuilder.cls is now an abstract class. It only contains protected methods for shared logic that is used by SObjectQueryBuilder.cls & AggregateQueryBuilder.cls. QueryBuilder.cls itself should no longer be used directly.


  • 7 ways to add fields to your query:
      1. addFields(Schema.FieldSet fieldSet)
      2. addFields(List<Schema.SObjectField> fields)
      3. addAllFields()
      4. addAllStandardFields()
      5. addAllCustomFields()
      6. addAllReadableFields()
      7. addAllEditableFields()
  • Name fields for lookups are automatically added to your query. For example, adding the contact object’s field AccountId (a lookup to account): sobjectQueryBuilder.addField(Schema.Contact.AccountId)

    will result in your query having 2 fields added SELECT AccountId, Account.Name FROM Contact

  • New method for including children records
  • New method, getQueryLocator()


A new builder class that generates dynamic queries & returns a list of AggregateResult * Four methods to add fields to group by 1. groupBy(QueryDate queryDate); 2. groupBy(Schema.FieldSet fieldSet); 3. groupBy(Schema.SObjectField groupByField); 4. groupBy(List<Schema.SObjectField> groupByFields);

  • Six aggregate methods
      1. avg(Schema.SObjectField sbojectField)
      2. count(Schema.SObjectField sbojectField)
      3. count_distinct(Schema.SObjectField sbojectField)
      4. max(Schema.SObjectField sbojectField)
      5. min(Schema.SObjectField sbojectField)
      6. sum(Schema.SObjectField sbojectField)

Since this is the first round of implementing the class, not all aggregate result features (like ‘GROUP BY ROLLUP’) have been implemented, but more will be added in the future.


  • Completely changed the methods available to handle 4 filtering scenarios
      1. filterByField
      2. filterByParentField
      3. filterByQueryDate
      4. filterBySubquery
  • Added support for specifying ‘AND’ and ‘OR’ statements in a query. To use, provide a list of query filters that you want to be wrapped as a set of ‘AND’ or ‘OR’ statements to the corresponding method
      1. andFilterBy
      2. orFilterBy


  • A new class that can be used in two ways
      1. Filter on a date/datetime field, using date functions

    ``` QueryDate qd = QueryDate.CALENDAR_MONTH(Schema.Lead.CreatedDate); QueryFilter filter = new QueryFilter().filterByQueryDate(qd, QueryOperator.EQUALS, 3); sobjectQueryBuilder.filterBy(filter); System.assertEquals(filter.getValue(), ‘CALENDAR_MONTH(CreatedDate) = 3’);

// In SOQL, it would be written as List<Lead> leads = [SELECT Id FROM Lead WHERE CALENDAR_MONTH(CreatedDate) = 3')]; ```

  1. . Group by a date function in an aggregate result
QueryDate qd = QueryDate.CALENDAR_MONTH(Schema.Lead.CreatedDate);

// In SOQL, it would be written as
List<AggregateResult> results = [SELECT CALENDAR_MONTH(CreatedDate)


  • Added 3 new filter scope enums
      1. DELEGATED
      2. MY_TERRITORY - only works in orgs with territory management enabled
      3. MY_TEAM_TERRITORY - only works in orgs with territory management enabled

Record Types


  • Now requires the abstract method Schema.SObjectType getSObjectType() to be implemented


  • The custom setting NebulaRepositorySettingsc.object has been renamed to NebulaSObjectQueryBuilderSettingsc.object



  • Added 3 new methods for working with collections
      1. getLastItem
      2. pop
      3. splice


  • New property, NamespacePrefix


  • Started commenting classes & methods with ApexDoc. This will be an ongoing improvement.
Updated 18/08/2017 13:53 1 Comments

test dom element is visible on screen



I am trying to automate test where i need to get reference of an element which is visible based on different condition.

When i am trying to get element reference when its not available, it throw error like element locator not able to find element. Thats expected but i dont want to get error here, instead need a helper method which return true when element is not available.

i am trying to do something below to get this done:

import { by } from ‘protractor’; import { Target } from ‘serenity-js/lib/screenplay-protractor’;

export class BookingUI { static Booking_Code_Label = Target.the(‘Booking Code Label’).located(by.css(‘.bookingcode .key’)); }

and in step definition code: this.Then(/booking code should not be visible$/, function(details) { return this.stage.theActorInTheSpotlight().attemptsTo( expect(this.stage.theActorInTheSpotlight().toSee(WebElement.of(BookingUI.Booking_Code_Label))).not.present, ); });

But i am getting error: ‘Property 'present’ does not exist on type ‘Assertion’. please suggest if i am doing this right way or any other way to test if any Dom element is present in page in serenityjs way. I am using Cucumberjs with chai-as-promised library for non angular website.

Updated 18/08/2017 23:29 1 Comments

Taurus: KNL Queue


Migrated from offline.

Assuming the Taurus (TUD) queue for KNL is called knl below.

Please provide a PR with files for a Taurus KNL computing environment.

  • etc/picongpu/taurus-tud/knl_picongpu.profile.example
  • etc/picongpu/taurus-tud/knl_profile.tpl

Examples and numa config scripts can re-used from @psychocoderHPC ’s laser (CPU queue) config in etc/picongpu/hypnos-hzdr/ and etc/picongpu/

Updated 18/08/2017 12:19

Write the documentation


Hi, @rafaelje

Could you fill the documentation about the Inventory Agent for the Wiki?

  • [ ] Home
  • [ ] How to install
  • [ ] How to use
  • [ ] How it works
  • [ ] How to build
  • [ ] Code documentation

About GitHub Wikis

Excellent documentation helps others use and extend the project.


Updated 18/08/2017 11:54

Why "import" hiddenimports in Entrypoints reciept?


@matysek In revision 2 of Recipe-Setuptools-Entry-Point you changed the code to also import the top-level modules of all hidden imports in the script. But the hidden-imports have already been passed to Analysis() at the end of the receipt, so there should be no need to import the hidden imports in the script.

This also has a side-effect, since the hidden import may be imported and initialize too early, which may lead to unexpected behavior.

Why did you change this?

Updated 18/08/2017 09:21 1 Comments

Excluding fields using a ResourceAdapter with the exclude attribute doesn't work


I have a resource adapter that excludes a field just like the documentation suggested: ```python import odin from odin.codecs import json_codec

class MyResource(odin.Resource): foo = odin.StringField() bar = odin.StringField()

class MyResourceAdapter(odin.ResourceAdapter): exclude = [‘foo’]

print(json_codec.dumps(MyResourceAdapter(MyResource(foo=‘1’, bar=‘1’)))) prints the following JSON: json { “foo”: “1”, “bar”: “1”, “$”: “main.MyResource” } ```

Passing exclude as a constructor argument works as expected as proven by the following code snippet: python print(json_codec.dumps(MyResourceAdapter(MyResource(foo='1', bar='1'), exclude=['foo'])))

prints the following JSON: json { "bar": "1", "$": "__main__.MyResource" }

This could be a documentation issue but I’m not sure what is the right usage of the API to fix that.

Updated 18/08/2017 08:55 1 Comments

TERRAFORM_CONFIG env var not documented


I was trying to use TERRAFORM_CONFIG in my scripts and found an undocumented (AFAICT) behavior in Terraform itself.

Terraform Version

terraform -v
Terraform v0.10.2

Debug Output

TERRAFORM_CONFIG='terraform{version="~>0.10.2"}' terraform version 
Error loading CLI configuration:
open terraform{version="~>0.10.2"}: no such file or directory


Updated 18/08/2017 13:39

Make it more obvious how to track changes


The normal Mediawiki practice to track changes over time is to add a page to your Watchlist.

However, the implementation here means that the main page (e.g. doesn’t actually change when there are changes from the prompt being retriggered.

The page that actually changes is, but the interesting/important content there is wrapped in an <includeonly>, so the workflow of tracking is well hidden.

Updated 18/08/2017 08:55

new screenshots for User Manual and Run Book


I took a number of new UI screenshots that will likely be useful in the next version of the user documentation.

They are: docs/screenshots/AuditBoardSignin.png docs/screenshots/AuditDefinitionReview.png docs/screenshots/CVR_ReviewButton.png docs/screenshots/ContestSelection-SaveAndNext.png docs/screenshots/CountyBallotManifestUpload.png docs/screenshots/CountyInfoAfterUploadsSuccessful.png docs/screenshots/CountyLogin.png docs/screenshots/CountyReadyToStartAudit.png docs/screenshots/OvervoteExample.png docs/screenshots/ReviewMarks_SubmitAndNextBallot.png docs/screenshots/SoSAuditUnderway.png docs/screenshots/SoSCounties.png docs/screenshots/SoSHomeAfterCountiesBeginUploading.png

Updated 18/08/2017 05:49

Getting started


Things to do before diving into the project

We need a good guideline for building this project. Too many times have I let myself focus so much on writing code and never maintaining it that it always ends up an unmanageable beast. Below is a short list of things to do before submitting contributions.

Task List

  • [x] - Build a README file (#3)
  • [x] - Code of Conduct (#2)
  • [x] - Issue Template
  • [ ] - Pull Request Template
  • [ ] - Contributing
  • [ ] - Set up Visual Studio
  • [ ] - Establish code formatting rules
  • [ ] - Outline project goals


    Build a README file

    The README is the front page of project and therefore the first impression of what it can do for them. Ideally, I’d like the format of our README to follow GitHub’s suggested guidelines. Note this is a documentation for the source code of the project itself, not the deployed product. More information provided in #3.

    Code of conduct

    Establishing a good code of conduct is a big deal to me and I want it to be to all contributors too. GitHub offers a few ready-made CoCs to use and one of these might work fine.


    I want a separate document that covers what would be most helpful for people who want to add to the project. I have a working outline of this right now but it’s fairly extensive and could take some time to complete. This one ultimately needs to be done before any code can be added since in it I plan to define code formatting rules to maintain readability for everyone and minimize confusing changes in styles between contributors.


    Set up Visual Studio

    I want this to be a cross-platform product, but I only have the resources to work on Windows 10 Desktop right now. My IDE of choice will be Visual Studio 2017 (or latest). Setting up new IDEs should be their own Issues when a contributor wants to add one.

    Establish code formatting rules

    This is mentioned in the Contributing section already, but it deserves more emphasis. Everyone likes to write code differently and, if the projects grows, it can get out of hand. So well-defined styles are essential as early as possible. This mostly emphasizes whitespace rules, bracket placement, class design, and test development. Maybe other things too that I can’t think of right now.

    Outline project goals

    I want to open up issues that state the features that need to be added to our project. When an issue is opened, we should try to best defined what the features does, doesn’t do, how to best separate components, and what tests can guide us in designing this feature. I’m aiming for test-driven-development, so the last requirement will be the most essential. I already have a lot of ideas about the project, so I’d like to create one task list Issue that addresses what I currently have in mind, and then make individual issues from that list.

Updated 19/08/2017 19:16

Start with more basics in


It’s come up that users may be broadly unfamiliar with our ecosystem by the time they read, so there’s probably more we can do here to introduce people to the concepts. @benshayden happy to brainstorm about this, but off the top of my head, some opportunities might be:

  • Clearly explain what results2 is, and optimally link to a sample (maybe roll it every time there’s a .html change in tracing/?)
  • Link to docs/speed/ and explain a bit about the broader ecosystem
  • Make it clear that this is something different from base/histogram.h
Updated 18/08/2017 02:56

kit.TimeStamp.hms display on web page


current rST source is ``HH:MM:SS``

For an unknown reason this get transliterated to HH -- MM -- SS when it is displayed in the HTML file

I have been unable to track down why, it is not documented behavior in the rST standard

The same was not true when I tried on the online editor

Switching to single backticks in the source changed the color, and changed it to a single dash

Using two colons in a row, they showed up as expected

Updated 18/08/2017 02:37

Move things from the README into the Wiki.


The README is a huge documentation. Users usually won’t read that big text, therefore I must move things away into the Wiki. IHMO, the README should contain possibly the following things: * Project name * Build status * Project summary/description * Abstract/goals/why * Quick introduction with a 5-line executable script * Explaining the most basic and essential API * Pointing out the Wiki

Updated 20/08/2017 02:48 1 Comments

[WIP] Plugin documentation for online and offline viewing


Fix #464 , close #508 . Also some other minor fixes.

Here is an alternate implementation by following an idea from . What do you think, @ejeschke ? If you are okay with this, I will go ahead and apply this to all the other plugins documentation.

Screenshots of rendered doc in “offline” mode (the image linking failure is unavoidable in this mode):

screenshot_01 <snipped> screenshot_02

Screenshots of rendered doc in “online” mode:

screenshot_04 <snipped> screenshot_06 <snipped> screenshot_07

Screenshot of online navigation left menu (the plan here is to get rid of the “global” and “local” sub-categories, and order the plugins alphabetically, which will be easier to find):



  • [x] Fix Travis CI failure for build_sphinx – Failure was because class.__doc__ = text was not allowed in Python 2 but okay in Python 3. Requiring Python 3 only to build doc is not unreasonable?
  • [ ] Implement this for all other plugins.
Updated 18/08/2017 01:32

Fork me on GitHub