Giter Club home page Giter Club logo

split-analytics's Issues

Dependabot can't evaluate your Ruby dependency files

Dependabot can't evaluate your Ruby dependency files.

As a result, Dependabot couldn't check whether any of your dependencies are out-of-date.

The error Dependabot encountered was:

Bundler::Dsl::DSLError with message: 
[!] There was an error parsing `Gemfile`: 
[!] There was an error while loading `split-analytics.gemspec`: undefined method `bug_tracker_uri=' for #<Gem::Specification:0x00005557f8e495a8>. Bundler cannot continue.

 #  from /home/dependabot/dependabot-updater/dependabot_tmp_dir/split-analytics.gemspec:10
 #  -------------------------------------------
 #    "sanitized"
 >    gem.bug_tracker_uri      = 'https://github.com/splitrb/split-analytics/issues'
 #    "sanitized"
 #  -------------------------------------------
. Bundler cannot continue.

 #  from /home/dependabot/dependabot-updater/dependabot_tmp_dir/Gemfile:3
 #  -------------------------------------------
 #  
 >  gemspec
 #  -------------------------------------------

You can mention @dependabot in the comments below to contact the Dependabot team.

Dependabot can't evaluate your Ruby dependency files

Dependabot can't evaluate your Ruby dependency files.

As a result, Dependabot couldn't check whether any of your dependencies are out-of-date.

The error Dependabot encountered was:

Bundler::Dsl::DSLError with message: 
[!] There was an error parsing `Gemfile`: 
[!] There was an error while loading `split-analytics.gemspec`: undefined method `bug_tracker_uri=' for #<Gem::Specification:0x000055ad2a80ef08>. Bundler cannot continue.

 #  from /home/dependabot/dependabot-updater/dependabot_tmp_dir/split-analytics.gemspec:10
 #  -------------------------------------------
 #    "sanitized"
 >    gem.bug_tracker_uri      = 'https://github.com/splitrb/split-analytics/issues'
 #    "sanitized"
 #  -------------------------------------------
. Bundler cannot continue.

 #  from /home/dependabot/dependabot-updater/dependabot_tmp_dir/Gemfile:3
 #  -------------------------------------------
 #  
 >  gemspec
 #  -------------------------------------------

You can mention @dependabot in the comments below to contact the Dependabot team.

Documentation edit suggestions

πŸ‘‹ Hey there! This is the developer experience audit from @mntnr for this repository. I've added in my thoughts below, in the form of a checklist. Looking forward to seeing what you think; let's see if we can resolve all of the open issues and make this repository shine ✨ πŸ’– ✨

Repository Review: splitrb/split-analytics

πŸ“Š An extension to Split to push test data to Google Analytics.

For notes on anything crossed out, look below. Note: I use [~] to mean that I have proposed a fix in a PR. I know it doesn't render properly in Markdown, but it works pretty well otherwise for that purpose. If I think that something is fine, even if it isn't valid according to this checklist, I've checked it off and included a note.

Reviewing the Repository Docs

  • Is there a README?
    • Does it follow standard-readme? See TODO section below for non-conforming criteria.
    • Is it spellchecked? 15 warnings, all false positives.
  • Is there a Code of Conduct, such as the Contributor Covenant?
    • [~] Is it mentioned in the Contribute section of the README? (Note: this isn't needed if you mention it in your CONTRIBUTE.md and it is in this repository.)
    • Does it reference an email address for violations?
    • Does it reference a second email address? See TODO section for a note on this.
  • Is there a LICENSE file?
    • Is this matched in the .gemspec?
    • [~] Is the year correct? Year is 2015 (NB: latest release is 2016).
  • Is there a .github or docs folder? See TODO section below for recommendation.
    • Is there an ISSUE_TEMPLATE.md?
    • Is there a PULL_REQUEST_TEMPLATE.md?
  • [~] Is there a CONTRIBUTING.md file? See TODO section below for recommendation.
    • [~] Does it mention how to make a PR?
    • Does it mention what sort of issues you'd like?
    • Does it mention a good first issue label as a starting point?
    • Does it mention triaging and bug reports as good starting points?
    • Does it point to a community chat program, like Slack or Gitter?
    • Does it encourage conversations in issues before opening huge PRs?
    • Does it specify where to ask questions on process?
    • Does it explain labels used in the issues?
  • Is there a CHANGELOG?
    • If there isn't, are notes included in the project's releases?
  • Does this pass alex adequately? Run alex *.md. 5 warnings, all false positives.
  • Does the repository name itself pass on http://wordsafety.com?

Process

  • Can I install easily?
  • Can I use this easily?

Issues and Pull Requests

  • Are there an acceptable amount of pull requests? 0 open, 7 closed at time of audit.
  • Are there an acceptable amount of issues? 2 open, 19 closed at time of audit.
  • Are an acceptable amount of issues less than six months old? 0 open, 1 closed at time of audit.
  • Are there useful issue labels?
  • Are the labels being used?
  • Is there a good for beginners or good first issue label?
  • Is there a waiting on contributor label?

Bots

Note: Neither of these are necessary, but they can help with some things. Check out https://probot.github.io/ for some tools.

  • Are there bots enabled?
  • Are the bots listed in the Contribute or Readme files so that users can expect to interact with them? N/A.

Metadata

  • Is there a description on GitHub?
    • [~] Does the description match the README?
  • Are the topics useful? No topics; this is noted in the TODO below.
  • Is there a website?
    • Does the website match the project?
    • Mostly. The documentation pulls directly from the GitHub README, but the installation is a little different (the website indicates to pass a version flag, which the GH readme does not).

Package Metadata

Note: These should apply to .gemspec here.

  • Does the description match the GitHub description? But see note in the TODO section below about the GH description; if that changes, then this should, too.
  • [~] Is there a bugs field?
  • Is there a homepage field?
  • Are there appropriate keywords?
    • Do these match the topics on GitHub? N/A.

TODO

  • [~] Make changes so that the README conforms to the standard-readme spec; the following criteria aren't met:
  • As this is an extension to split, consider pointing back to split for duplicative elements which you do not want to replicate in its extensions, such as info on how to contribute (including) how to manage issues and PRs. If not, I recommend creating a CONTRIBUTE.md similar to the main split repo's (see list above for recommended elements to include).
  • I recommend either creating a CHANGELOG, or including a note in each release briefly stating what the release included (this was done for one release but no others).
  • I would recommend adding topics to the repo below the GH description.

Generic

  • I would add a maintainers section, to make it clear who is on the maintainers team. This helps set expectations and clarifies for the users who they can talk to.
  • Add https to your repository website link. Currently it is http.
  • Add a link to your Google Groups you reference in the main split repo. You want to engage with users there.
  • Consider adding a secondary email to the Code of Conduct as a contact - someone may have an issue with you but not want to tell you directly. I know, this idea may be awkward. But you will give them an option in case they do have an option, and this may be good for the overall health of the project. I'd be happy to add my name here, if you need a second one.
  • Consider adding ISSUE_TEMPLATE.md and PULL_REQUEST_TEMPLATE.md files to your repository. It looks like you have your PRs well under control, but these may help you in the future. At the least, ask them to run the tests, first, and to read the Usage guides.
  • This audit does not cover license dependency. For that, I suggest using either licensee or an external tool like Fossa. Let me know if you want more help here.

Issues

  • Consider adding available labels as well as good first issue. These can be used to signal that you're looking for community involvement for issues. They can also be configured to display on http://up-for-grabs.net. This will help more people interact with your code, and lead to small, iterative work done by others. It may take some time to set up initially - properly scoping issues for newcomers takes some time - but the payback should be worth it.
  • I label pull requests where I am waiting on the Contributor to respond waiting on contributor. This helps alleviate pressure on you to close them.

Contribute back?

This checklist is open source! If you have suggestions or think it could be better, contribute back on mntnr/audit-templates.

As well - note that you don't need to tick every box. If you have anything you'd like to talk about, I'm here; otherwise, I would suggest either pulling out tasks into a comment before, or into other issues, and then closing the issue when you feel you've adequately done everything. If you want help here, let me know.

Thank you!

Dependant on split 0.2.2 or earlier

Hi,

I am trying to use this gem with Split V 0.3.1, I would like to bump the version dependency to 0.3.1, do you know of any issues that has prevented this so far?

If not I will do a fork and update the gemspec.

Thanks,
Stephen

When there are more than 5 experiments the index used for the script is messed up.

The index on _setCustomVar cannot be greater than 5, see: https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables

            <script type="text/javascript">
          var _gaq = _gaq || [];
          _gaq.push(["_setAccount", "UA-11223344-1"]);
          
          _gaq.push(["_setCustomVar", 4, "ab_test_four", "c", 1]);
_gaq.push(["_setCustomVar", 5, "ab_test_five", "a", 1]);
_gaq.push(["_setCustomVar", 6, "ab_test_six", "b", 1]);
_gaq.push(["_setCustomVar", 7, "button_color_on_signup", "green", 1]);
_gaq.push(["_setCustomVar", 8, "button_color_on_login", "green", 1]);
          _gaq.push(["_trackPageview"]);
          (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl.google-analytics.com/ga.js' : 'http://www.google-analytics.com/ga.js');
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          })();

Broken with 0.6.0

Split gem works fine on Heroku, but adding split-analytics into the mix breaks with H13 - 'Connection closed without response' error. Works fine locally, but not in staging or production.

undefined method `each_with_index' for #<Split::Persistence::SessionAdapter:0x007fb47455fd18>

Just updated a project of mine and got this error.

This happens in analytics.rb :

    def custom_variables
      return nil if ab_user.nil?
      arr = []
      ab_user.each_with_index do |h, i|
        arr << "_gaq.push(['_setCustomVar', #{i + 1}, '#{h[0]}', '#{h[1]}', 1]);"
      end
      arr.reverse[0..4].reverse.join("\n")
    end

Gemfile.lock :

    split (1.1.0)
      redis (>= 2.1)
      redis-namespace (>= 1.1.0)
      simple-random
      sinatra (>= 1.2.6)
    split-analytics (1.0.0)
      split (>= 1.0.0)

Do you have any clue ? Thanks a lot.

The variant stored in the cookie is reported instead of the real variant.

Hi Andrew,

Hopefully don't mind that I report an issue I found.
This issue happens only after setting a winner.

Steps to reproduce:
-Go to the split admin UI
-Set a winner (from then on only that variant is generated no matter if another variant was stored in the cookie)
-In the google analytics the variant stored in the cookie is reported.

Desired behaviour:
-In the google analytics the actual variant should be stored regardles if a winner is set or not.

I will place a code snippet here showing how did I solved this:

  def navigation_location_experiment
    ab_test('navigation_location', 'Top', 'Sidebar')
  end

  def tracked_experiments
    ['navigation_location']
  end

#THIS method is used in the template <%= raw custom_variables %>
  def custom_variables
    reporting_arr = []
    Split::Experiment.all.each_with_index do |experiment, i|
      name = experiment.name
      if tracked_experiments.include? name
        value = send "#{name}_experiment"
        reporting_arr << "_gaq.push(['_setCustomVar', #{i+1}, '#{name}', '#{value}', 1]);"
      end
    end
    reporting_arr.join "\n"
  end

The main point in the code above is to get exactly the same variant which is used by split itself, no matter if a winner is set or not.
The disadvantage is that we need the variants too... In other words we need the code ab_test(....). Therefore I set up a convention to have a method with the experiment name and underscore experiment. I am using that method to retrieve the experiment value. In the above example "navigation_location_experiment".

Hopefully it helps

version in test name in analytics

In the custom variables in analytics I am getting the version number in each custom variable keys.

The thing is that for the same test I have three different lines due to that number. When is the version changed ??

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.