Skip to content
This repository has been archived by the owner on Jul 3, 2019. It is now read-only.

Discussion on retired commit feature of Enki #36

Open
jordanfish opened this issue Dec 13, 2016 · 40 comments
Open

Discussion on retired commit feature of Enki #36

jordanfish opened this issue Dec 13, 2016 · 40 comments
Labels

Comments

@jordanfish
Copy link
Contributor

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.

@enphnt
Copy link
Contributor

enphnt commented Dec 14, 2016

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

@TheRealVira
Copy link
Contributor

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)?

@iMarv
Copy link
Contributor

iMarv commented Dec 15, 2016

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

@subramaniashiva
Copy link
Contributor

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

@xdevs23
Copy link
Contributor

xdevs23 commented Dec 19, 2016

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.

@geekmuse
Copy link
Contributor

geekmuse commented Dec 19, 2016

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.

@mathieudutour
Copy link
Member

@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

@xdevs23
Copy link
Contributor

xdevs23 commented Dec 19, 2016

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

@mathieudutour
Copy link
Member

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

@xdevs23
Copy link
Contributor

xdevs23 commented Dec 19, 2016

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

@jordanfish
Copy link
Contributor Author

@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.

@almoore
Copy link
Contributor

almoore commented Dec 19, 2016

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.

@geekmuse
Copy link
Contributor

@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).

@jordanfish
Copy link
Contributor Author

@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.

@xdevs23
Copy link
Contributor

xdevs23 commented Dec 19, 2016

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.

@mathieudutour
Copy link
Member

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?

@tfroseman
Copy link
Contributor

@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.

@msfjarvis
Copy link

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

@mathieudutour
Copy link
Member

@MSF-Jarvis they explicitly told me so ;)

@nowendwell
Copy link
Contributor

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.

@pinkasey
Copy link
Contributor

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.

@jonathanlaf
Copy link
Contributor

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.

@jordanfish
Copy link
Contributor Author

@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!

@78juli
Copy link
Contributor

78juli commented Dec 19, 2016

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

@FinlayDaG33k
Copy link
Contributor

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

@chirag-jhamb
Copy link
Contributor

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

@FinlayDaG33k
Copy link
Contributor

@chirag-jhamb yes :)

@fpnick
Copy link
Contributor

fpnick commented Dec 20, 2016

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

@FinlayDaG33k
Copy link
Contributor

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

@m-alani
Copy link
Contributor

m-alani commented Dec 21, 2016

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!

@Isopach
Copy link
Contributor

Isopach commented Dec 21, 2016

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?

@nshntarora
Copy link

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.

@Vankog
Copy link
Contributor

Vankog commented Dec 21, 2016

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.

@FinlayDaG33k
Copy link
Contributor

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

@Vankog
Copy link
Contributor

Vankog commented Dec 22, 2016

@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.

@mathieudutour
Copy link
Member

mathieudutour commented Dec 22, 2016

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 ;) )

@FinlayDaG33k
Copy link
Contributor

@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.

@criscmaia
Copy link

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.

@Vankog
Copy link
Contributor

Vankog commented Oct 17, 2017

It seems a replacement is unlikely then?

@FinlayDaG33k
Copy link
Contributor

Looks like it yea...

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests