enkidevs / commit

:chart_with_upwards_trend: Level up your dev skills every day.

Home Page:https://enki.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Discussion on retired commit feature of Enki

jordanfish opened this issue · comments

We’re very interested in hearing if you liked this feature and would like us to investigate a new (and more scalable) way of integrating your progress with GitHub, or with a personal profile.

This time, we’ll try not to get in trouble with GitHub.

I already miss this feature. For me, it was a huge motivator to keep me going on a daily basis to see my progress recorded via github. I liked that it was all in one place with all my other code exercises.

When I would share this app around the office, the github integration feature was almost always the key selling point. It definitely sets the ENKI app apart from any others I use

Visiting my GitHub-profile and seeing those nice green dots does definitely have some charms to it... Although it would be great if there also would be an external solution to that problem, I have to say that seeing my workouts on GitHub does boost my motivation. @enphnt really described my point of view. Maybe add an additional feature that allows us to share our finished workouts using GitHub (while also using your own solutions)?

++
Seeing your own progress on your GitHub profile helps boosting motivation.

Github integration was a big motivator for me. Would be nice if we can get the feature back.

What about doing commit --amend whenever possible and do a force push when e.g. updating the leaderboards so that you dont have many many commits doing the same thing. Git GC runs every now and then, cleaning up the repo and removing dangling commits.

What if initiation of the feature forks a repo under the enki account into our personal account, and progress is tracked against the forked repo in our own account? Then you're still able to see who's using it (by looking at forks of the base repo), and progress tracking repos are smaller because they're atomic at the user level. Since the repos would be public, you could hook into GH's API to generate leaderboards, etc.

@xdevs23 we still need one commit per day per user to have the github streak

@geekmuse Yes that's a possibility. There is a something to consider though: we would need to ask write access to your public repo. Would you mind? Of course we wouldn't do anything else that accessing your commit repo but it could be hard to explain this to someone who doesn't already know what is the commit repo

Well, i mean the leaderboard updates of that enkibot...

oh yeah but it's 1 commit per day is nothing compared to the thousands coming from the users :)

Would shrink down the size of the repo a little bit tho

@mathieudutour Can you share exactly what Alex from GitHub said to you about the creation pattern? Just to give better understanding for what we have to avoid.

I agree with geek muse that using a forked repo with each personal account would be better. You app could submit automatic issue requests on improvement or feedback and make use of the gist features.
This is really a feature that would be better tracked by a database and using something like firebase would be a great scalable way to do that. They have a javascript API that would work easily with what you already have.

@mathieudutour No, not at all -- I would generally view that as a very fair ask of a service/app that's doing something like what you are doing (of course, you guys have a bit of a challenge conveying that to new users concisely from the app UI when asking someone to allow it).

@almoore We're already tracking this with a database internally, but we created the commit feature so people could integrate their dev learning habit onto their primary dev profile. We've heard from users that they'd prefer to have activity on their GitHub page than an Enki profile, for example, and we think all dev activity should have a home on your GitHub if you want it to live there.

Forked repo is an option we're considering. Nice to hear from @geekmuse that the permissions ask isn't too much of an off-put, that was one of our primary concerns.

What about like pushing the stuff to a git server of yours, and like every week push the stuff to github... I guess that would still give that commit streak in the github profile.

Can you share exactly what Alex from GitHub said to you about the creation pattern?

Essentially, keeping all commits under the same repo is bad. Removing the script won't help and nor will pushing empty commits. Creating a fork network with tens of thousands of repositories in it would cause similar issues to the current one.
So the only solution is we want to keep something like this is to create a new repo per user on their own account.

You app could submit automatic issue requests on improvement or feedback and make use of the gist features.

@almoore I'm not sure what you mean, could you explain a bit more?

@geekmuse has a solid idea in that the one repo per user will act like normal. GitHub will see little impact compared to many commits by many people that was the original idea. While there may be some who are against giving enki write permissions. This seems like a good first solution.

Github uses the git alternates method to maintain forks keeping sizes low so I don't think thousands of daily updated forks are a big hassle to them with regards to size

@MSF-Jarvis they explicitly told me so ;)

I think asking for write access and publishing it to our personal github profiles is the best. I know I would be open to it.

Please don't do it
Leave github alone :-(

When I first saw this feature I thought "hey - that's really original. And cool".
My second thought was "github was not meant for that. Also, it's an abuse of a free platform (I wonder if they pay for that). I wounder how long before it starts causing problems. Or maybe I'm too paranoid".

Bottom line -
Enki is an awesome app even without the github integration. We love Enki. We also love github. Please don't risk breaking github again.

Also -
There are still many things, IMHO, to improve in Enki. Much more important. Why not focus on that?
One example that annoys me - 'try it yourself' is usually just reciting the lesson, it's nothing like w3schools try it yourself.

Personnal repo to track personnal results and a global db that push information to enkidev repo just to keep general track (one commit per day or so...) Would be awesome i think.

@pinkasey The idea is we build something in a way that doesn't risk breaking github at all - and still lets people have the feature if they'd like to use it.

We're always working to improve all aspects of Enki, and since using this feature made people more likely to commit (heh) to their habit and learn more, that's something we're interested in!

I really liked this feature too. It also helps when joining in other projects, people see the daily or quite frequent commits which is a proof of our motivation and 'committedness'. :P

Think it's nicer to have a repo on your own Github account, so your stalkers can see how awesome you are :)

So how would that work? The app would create a repo as you sign up and then commit to it after every exercise?

If a personal repo is easy to realize, do that! Great idea.
However personally I wouldn't mind if the feature was dropped alltogether.

It should be doable with the Github API I guess. but I'm not the dev of Enki so it's up to them.

I'd vote for a personal repo with separate files for each language/topic, within these files, the app commits the topic that was presented through its workout (maybe one topic or brief description per line?).
That way we keep the motivation up as users, and also each user would have a simple way of tracking all the development snippets they digested through the Enki app.

Either way, keep up the good work peeps!

I vote for the personal repo too. Or maybe go with a freemium model and require a donator status in order to be able to commit to the retired public repo?

How about having multiple repositories maintained by you?
Like how Heroku used to do its load balancing. When a request came in, it randomly selected a dyno and forwarded your request to that.

Have multiple commit repositories. Whenever a user saves his progress, he makes a commit to any of these repositories (selected randomly). As the repositories will be owned by you, there's no need to ask for write permissions from the users. And as all the commits are distributed across a number of repositories, it will keep the git tree size small too.

I vote for @xdevs23 idea to use an own git server of yours (edit: meaning, enki hosts a git server for us) and once every few days trimming the history and pushing it to github.com. This way the functionality stays the same, with some delay for the users profiles on github.com itself to be updated.

@Vankog the problem with that idea is: you'd need your own git server... not everybody has that, or wants to deal with it.

@FinlayDaG33k
Sorry to cause confusion, but I think @xdevs23 meant that enki hosts its own git server, which the users commit to. Enki then takes care of trimming and consolidating the history and data and pushes the repo to github.com every few days.

I'm not sure we will get the expected result:

  • if we push all the commits, even if it's once every few days, the size of the repo will be the same as now
  • if we commit only once every few days with all the changes, you won't get the contribution on your github profile

(and yes, we don't want to deal with a git server ;) )

@Vankog oh yes, if you say it like that it makes sense, but it would still make a big repo like @mathieudutour already pointed out.

I think the idea I gave (everybody having it's own repo on it's own profile) would be the easiest to realize and maintain.

Is the idea still being developed? I've just heard about it and seems pretty cool! I'm happy on giving writing permission so you can write to my own repository on github.

It seems a replacement is unlikely then?

Looks like it yea...