Can't download free module



  • Hi guys,

    I tried to add new free module to the store, and it worked without problems.

    The problem is that I can’t download it from the store. Actually, I can’t download any free module – when I click on donwload button, it just silently redirects me to homepage. Any idea where the problem might be?



  • Are you logged into to the store?



  • @lesley sure, download button isn’t available otherwise



  • ok, I can download some (older) free modules, such as MemCache manager. I can’t, however, download recent ones - for example Block Facebook Google Optimized



  • Give me like 5-10 minutes I see the issue.



  • Ok, I fixed it on the modules I released this morning. Your module needs a release made for it, that is where our system gets the download from. So if you have the webhook enabled, just add and publish a release package with your module. I need to update our docs on that, I don’t think it mentions that.



  • @lesley all right, that makes sense. I’ve created a release. How long does it take for tb store to download and list the latest release?

    On related note - it would be great to show github link on free modules product detail page, so others could file issues / enhancement requests, or fork and contribute to the module development.



  • Totally, we will add that today.

    Did you set the GH webhook for your module?



  • @lesley yes, I did, but I forgot to check send me everything. I’ve fixed it, and created new release, but still nothing…

    I’ve checked the webhook log, and there is a record of outgoing webhook call with response

    Configuration not found
    

    this is the webhook payload

    {
      "action": "published",
      "release": {
        "url": "https://api.github.com/repos/getdatakick/pricealert/releases/8950908",
        "assets_url": "https://api.github.com/repos/getdatakick/pricealert/releases/8950908/assets",
        "upload_url": "https://uploads.github.com/repos/getdatakick/pricealert/releases/8950908/assets{?name,label}",
        "html_url": "https://github.com/getdatakick/pricealert/releases/tag/v1.0.5",
        "id": 8950908,
        "tag_name": "v1.0.5",
        "target_commitish": "master",
        "name": "Thirtybees support",
        "draft": false,
        "author": {
          "login": "getdatakick",
          "id": 34651851,
          "avatar_url": "https://avatars0.githubusercontent.com/u/34651851?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/getdatakick",
          "html_url": "https://github.com/getdatakick",
          "followers_url": "https://api.github.com/users/getdatakick/followers",
          "following_url": "https://api.github.com/users/getdatakick/following{/other_user}",
          "gists_url": "https://api.github.com/users/getdatakick/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/getdatakick/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/getdatakick/subscriptions",
          "organizations_url": "https://api.github.com/users/getdatakick/orgs",
          "repos_url": "https://api.github.com/users/getdatakick/repos",
          "events_url": "https://api.github.com/users/getdatakick/events{/privacy}",
          "received_events_url": "https://api.github.com/users/getdatakick/received_events",
          "type": "User",
          "site_admin": false
        },
        "prerelease": false,
        "created_at": "2017-12-18T18:32:03Z",
        "published_at": "2017-12-18T18:37:28Z",
        "assets": [
    
        ],
        "tarball_url": "https://api.github.com/repos/getdatakick/pricealert/tarball/v1.0.5",
        "zipball_url": "https://api.github.com/repos/getdatakick/pricealert/zipball/v1.0.5",
        "body": "Support for 30bz"
      },
      "repository": {
        "id": 114643779,
        "name": "pricealert",
        "full_name": "getdatakick/pricealert",
        "owner": {
          "login": "getdatakick",
          "id": 34651851,
          "avatar_url": "https://avatars0.githubusercontent.com/u/34651851?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/getdatakick",
          "html_url": "https://github.com/getdatakick",
          "followers_url": "https://api.github.com/users/getdatakick/followers",
          "following_url": "https://api.github.com/users/getdatakick/following{/other_user}",
          "gists_url": "https://api.github.com/users/getdatakick/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/getdatakick/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/getdatakick/subscriptions",
          "organizations_url": "https://api.github.com/users/getdatakick/orgs",
          "repos_url": "https://api.github.com/users/getdatakick/repos",
          "events_url": "https://api.github.com/users/getdatakick/events{/privacy}",
          "received_events_url": "https://api.github.com/users/getdatakick/received_events",
          "type": "User",
          "site_admin": false
        },
        "private": false,
        "html_url": "https://github.com/getdatakick/pricealert",
        "description": "PriceAlert - Follow the Price for Prestashop / Thirtybees",
        "fork": false,
        "url": "https://api.github.com/repos/getdatakick/pricealert",
        "forks_url": "https://api.github.com/repos/getdatakick/pricealert/forks",
        "keys_url": "https://api.github.com/repos/getdatakick/pricealert/keys{/key_id}",
        "collaborators_url": "https://api.github.com/repos/getdatakick/pricealert/collaborators{/collaborator}",
        "teams_url": "https://api.github.com/repos/getdatakick/pricealert/teams",
        "hooks_url": "https://api.github.com/repos/getdatakick/pricealert/hooks",
        "issue_events_url": "https://api.github.com/repos/getdatakick/pricealert/issues/events{/number}",
        "events_url": "https://api.github.com/repos/getdatakick/pricealert/events",
        "assignees_url": "https://api.github.com/repos/getdatakick/pricealert/assignees{/user}",
        "branches_url": "https://api.github.com/repos/getdatakick/pricealert/branches{/branch}",
        "tags_url": "https://api.github.com/repos/getdatakick/pricealert/tags",
        "blobs_url": "https://api.github.com/repos/getdatakick/pricealert/git/blobs{/sha}",
        "git_tags_url": "https://api.github.com/repos/getdatakick/pricealert/git/tags{/sha}",
        "git_refs_url": "https://api.github.com/repos/getdatakick/pricealert/git/refs{/sha}",
        "trees_url": "https://api.github.com/repos/getdatakick/pricealert/git/trees{/sha}",
        "statuses_url": "https://api.github.com/repos/getdatakick/pricealert/statuses/{sha}",
        "languages_url": "https://api.github.com/repos/getdatakick/pricealert/languages",
        "stargazers_url": "https://api.github.com/repos/getdatakick/pricealert/stargazers",
        "contributors_url": "https://api.github.com/repos/getdatakick/pricealert/contributors",
        "subscribers_url": "https://api.github.com/repos/getdatakick/pricealert/subscribers",
        "subscription_url": "https://api.github.com/repos/getdatakick/pricealert/subscription",
        "commits_url": "https://api.github.com/repos/getdatakick/pricealert/commits{/sha}",
        "git_commits_url": "https://api.github.com/repos/getdatakick/pricealert/git/commits{/sha}",
        "comments_url": "https://api.github.com/repos/getdatakick/pricealert/comments{/number}",
        "issue_comment_url": "https://api.github.com/repos/getdatakick/pricealert/issues/comments{/number}",
        "contents_url": "https://api.github.com/repos/getdatakick/pricealert/contents/{+path}",
        "compare_url": "https://api.github.com/repos/getdatakick/pricealert/compare/{base}...{head}",
        "merges_url": "https://api.github.com/repos/getdatakick/pricealert/merges",
        "archive_url": "https://api.github.com/repos/getdatakick/pricealert/{archive_format}{/ref}",
        "downloads_url": "https://api.github.com/repos/getdatakick/pricealert/downloads",
        "issues_url": "https://api.github.com/repos/getdatakick/pricealert/issues{/number}",
        "pulls_url": "https://api.github.com/repos/getdatakick/pricealert/pulls{/number}",
        "milestones_url": "https://api.github.com/repos/getdatakick/pricealert/milestones{/number}",
        "notifications_url": "https://api.github.com/repos/getdatakick/pricealert/notifications{?since,all,participating}",
        "labels_url": "https://api.github.com/repos/getdatakick/pricealert/labels{/name}",
        "releases_url": "https://api.github.com/repos/getdatakick/pricealert/releases{/id}",
        "deployments_url": "https://api.github.com/repos/getdatakick/pricealert/deployments",
        "created_at": "2017-12-18T13:22:31Z",
        "updated_at": "2017-12-18T13:32:40Z",
        "pushed_at": "2017-12-18T18:37:29Z",
        "git_url": "git://github.com/getdatakick/pricealert.git",
        "ssh_url": "git@github.com:getdatakick/pricealert.git",
        "clone_url": "https://github.com/getdatakick/pricealert.git",
        "svn_url": "https://github.com/getdatakick/pricealert",
        "homepage": null,
        "size": 2191,
        "stargazers_count": 0,
        "watchers_count": 0,
        "language": "PHP",
        "has_issues": true,
        "has_projects": true,
        "has_downloads": true,
        "has_wiki": true,
        "has_pages": false,
        "forks_count": 0,
        "mirror_url": null,
        "archived": false,
        "open_issues_count": 0,
        "license": {
          "key": "mit",
          "name": "MIT License",
          "spdx_id": "MIT",
          "url": "https://api.github.com/licenses/mit"
        },
        "forks": 0,
        "open_issues": 0,
        "watchers": 0,
        "default_branch": "master"
      },
      "sender": {
        "login": "getdatakick",
        "id": 34651851,
        "avatar_url": "https://avatars0.githubusercontent.com/u/34651851?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/getdatakick",
        "html_url": "https://github.com/getdatakick",
        "followers_url": "https://api.github.com/users/getdatakick/followers",
        "following_url": "https://api.github.com/users/getdatakick/following{/other_user}",
        "gists_url": "https://api.github.com/users/getdatakick/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/getdatakick/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/getdatakick/subscriptions",
        "organizations_url": "https://api.github.com/users/getdatakick/orgs",
        "repos_url": "https://api.github.com/users/getdatakick/repos",
        "events_url": "https://api.github.com/users/getdatakick/events{/privacy}",
        "received_events_url": "https://api.github.com/users/getdatakick/received_events",
        "type": "User",
        "site_admin": false
      }
    }
    


  • Can you click resend and see if that fixes it.



  • same response: Configuration not found



  • Hmm, are you using your key in the web hook?



  • Oh, I see the issue, you have to add a zip manually that will be the module package, not rely on github to make it, since it will create a zip that cannot be a module. Look at how this one is done, https://github.com/thirtybees-community/ganalyticsoptimized/releases See we uploaded the binary for the module as well. If you also notice in most of our repo’s we have a build script to automatically make the module from running a shell command, https://github.com/thirtybees-community/ganalyticsoptimized/blob/master/build.sh You might make a script like that, run it, then upload the zip it creates to the release. And then delete the zip from your repo.



  • thanks @lesley, that did the trick.

    It would be much better if you could process even releases without assets - I mean, it shouldn’t be hard to download source tarbal, unzip it, rename directory and zip it again. Granted, that wouldn’t work for some repos, but it would work just fine for majority.

    I have to say - at the moment I really don’t see the benefit of using github - it really doesn’t bring much to the party. For example new release - I have to manually create zip file, upload it to github, create release and hope that the whole webhook orchestra will work. I could upload the zip file directly to the store instead.



  • We are banking in the future on having a tighter implementation. I still think we will have to work off some release pattern though, because we cannot just automatically make them into releases because of version issues and regressions.

    The hope is that if someone finds a bug in your module, or thinks a feature might be useful, they can make a change. I am going to get the repo url information added today, so that should help with that aspect.

    We also need to block on not having the zip with a good error message, that would have solved this quicker as well. I am updating the docs right now to add the release info to them.

    Another main reason we have done things like this, is it is nice to build off the successes of other companies. I look at the wordpress free module ecosystem and see that it works. They use a similar system with their own private SVN.


 

Looks like your connection to thirty bees forum was lost, please wait while we try to reconnect.