Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
On 03/07/2016 09:10 PM, Bryan Richter wrote: > On Tue, Mar 08, 2016 at 04:39:11AM +0200, fr33domlover wrote: >> On Mon, 7 Mar 2016 16:39:11 -0800 >> Bryan Richter wrote: >> >>> Can I pass the tasks on to someone else who can take the time to >>> figure out the best way to use OpenProject? >> >> Personally I'm not exactly excited about taking that role, unless OP >> can be used conveniently from the terminal / text-based web browser >> / email client, but regardless - do we have a documented workflow >> for using it? Maybe you can push tasks to some TODO file / etherpad >> / email. So far I like the use of the dev ML and IRC for that: You >> mention a task, a dev picks it up and sends a patch or MR. > > I like the idea of the ML too, though only for pushing notifications > and discussing tasks. It's not gonna cut it for tracking them. Design, > development, *and* users need to be able to track tasks. > > Sadly, I just checked, and OpenProject flatly does not work without > Javascript. That is unfortunate. I still suspect OpenProject will > become THE tool for tracking tasks. > >> The same applies to me and any other volunteer here: When someone >> has some idea / proposal / problem / suggestion, where do they put >> it? OP or mailing list or Snowdrift wiki? > > Everyone is always welcome to send suggestions to the mailing list, > and somebody will take care of triaging it. In the shortest of terms, > that could even just mean I add it to my large list of tasks. > > Eventually, everything will end up in OpenProject, however. > > The "Snowdrift wiki" is one of the things being removed, by the way. > All this needs to keep in mind that our absolute focus is on getting a working MVP situation and getting the core thing finally launched. Decisions made now have ramifications for longer term, but we're not deciding one way or the other about the particular tools and issues in the long-term. The point is to have a core working MVP. Once we're on track to have an MVP, how we handle wiki and discussion things and whatever else isn't set in stone. What matters right now is that we use something workable to manage our immediate needs to get MVP. I still want to see us use Gitit2 for a wiki connected to the eventually launched system. I'm just accepting that the wiki we have on the site right now is not going to stay as is and *cannot* be a distraction in the building of the MVP. Once we have a working dev MVP thing, how we *launch* it in relation to maintaining the content of the wiki and other stuff is something to not get distracted with discussing today. -Aaron signature.asc Description: OpenPGP digital signature ___ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
On Tue, Mar 08, 2016 at 04:39:11AM +0200, fr33domlover wrote: > On Mon, 7 Mar 2016 16:39:11 -0800 > Bryan Richter wrote: > > > Can I pass the tasks on to someone else who can take the time to > > figure out the best way to use OpenProject? > > Personally I'm not exactly excited about taking that role, unless OP > can be used conveniently from the terminal / text-based web browser > / email client, but regardless - do we have a documented workflow > for using it? Maybe you can push tasks to some TODO file / etherpad > / email. So far I like the use of the dev ML and IRC for that: You > mention a task, a dev picks it up and sends a patch or MR. I like the idea of the ML too, though only for pushing notifications and discussing tasks. It's not gonna cut it for tracking them. Design, development, *and* users need to be able to track tasks. Sadly, I just checked, and OpenProject flatly does not work without Javascript. That is unfortunate. I still suspect OpenProject will become THE tool for tracking tasks. > The same applies to me and any other volunteer here: When someone > has some idea / proposal / problem / suggestion, where do they put > it? OP or mailing list or Snowdrift wiki? Everyone is always welcome to send suggestions to the mailing list, and somebody will take care of triaging it. In the shortest of terms, that could even just mean I add it to my large list of tasks. Eventually, everything will end up in OpenProject, however. The "Snowdrift wiki" is one of the things being removed, by the way. signature.asc Description: Digital signature ___ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
On 03/07/2016 04:39 PM, Bryan Richter wrote: > On Mon, Mar 07, 2016 at 02:39:07PM -0800, Aaron Wolf wrote: >> In this case, I'm fine with moving forward but only if it's otherwise >> clean progress. > > Ok, if design is fine with it (which was expected) we come to a bigger > problem. > > Right now I'm working to strip out unnecessary features and prototype > code. So far, that has resulted in 9,000 lines of code removed. > > 9,000. > > Yes, that is more than what's left. It's also as many as a good-sized > novel. > > https://github.com/snowdriftcoop/snowdrift/compare/master...chreekat:reboot?expand=1 > > IMO this project is dead and we don't know it yet. We HAVE to continue > stripping out unusable code in order to resuscitate it. > > Doing so, of course, massively conflicts with the changes you (fr33) > are making; changes that are hard to make precisely because there's so > much dead weight. This causes me — and presumably you — some tension. > >> I definitely want to see *all* the stuff connected to work packages in >> OP when it's not just minor typo fixes etc. And to that end, I hope the >> dev team will already work to add stuff to OP and add more concrete >> tasks to the existing user stories to make the already entered items >> complete. > > I still can't make heads or tails of OpenProject. I don't think I can > take on the project manager role of managing that tool. And it > *should* be managed, by some one person or another. I guess that's > a different topic. > > To be more *on* topic, the act of stripping out dead code is creating > some new tasks. I definitely want to share them and all that. > OpenProject is the tool to do it with. Can I pass the tasks on to > someone else who can take the time to figure out the best way to use > OpenProject? > > (Apologies for cross posting to discuss@, but there's some larger > topics here and I want to include more people.) > > It seems to me that declaring a "freeze" on things makes sense while making it clear that people can still do isolated valuable things like figuring out what some CSS should be or discussing what some architecture needs to look like. I think resuscitating the code is as broadly simple as learning from all the experience and work so far, but starting with a core MVP thing with maximum segregation of parts, clear names for terms, clear tests… i.e. what you're doing now. All the design of tools and content and interest and everything else provides valuable data from which to draw on going forward. The fact that we already have working notifications being sent by email doesn't mean we have to stick to the existing code, but it does mean we have some code to draw on as we rewrite the core MVP. etc. I think when we have a core clean MVP, it will be easy to say "oh, we need X, can we just pull that in or adapt it easily enough from the original version?" and the answers will vary from case to case. Anyway, we absolutely need some leadership on Open Project. I hope we can find people to step up and take that lead. signature.asc Description: OpenPGP digital signature ___ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
On Mon, 7 Mar 2016 16:39:11 -0800 Bryan Richter wrote: > Doing so, of course, massively conflicts with the changes you (fr33) > are making; changes that are hard to make precisely because there's so > much dead weight. This causes me — and presumably you — some tension. Ah, I didn't know you were removing old code. Please don't let my patches interfere though. I worked hard (in the sense of lots of git grep and stack build, not intellectualy challenging or anything :P) to make all the chaos build after changing all the routes, but it can wait until you clean the code and re-do the /u/ changes on much smaller and simpler code. Actually, with such huge changes I expected conflicts. Here they are :P > > [ ... ] > > To be more *on* topic, the act of stripping out dead code is creating > some new tasks. I definitely want to share them and all that. > OpenProject is the tool to do it with. Can I pass the tasks on to > someone else who can take the time to figure out the best way to use > OpenProject? Personally I'm not exactly excited about taking that role, unless OP can be used conveniently from the terminal / text-based web browser / email client, but regardless - do we have a documented workflow for using it? Maybe you can push tasks to some TODO file / etherpad / email. So far I like the use of the dev ML and IRC for that: You mention a task, a dev picks it up and sends a patch or MR. The same applies to me and any other volunteer here: When someone has some idea / proposal / problem / suggestion, where do they put it? OP or mailing list or Snowdrift wiki? --fr33 ___ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
On Mon, Mar 07, 2016 at 02:39:07PM -0800, Aaron Wolf wrote: > In this case, I'm fine with moving forward but only if it's otherwise > clean progress. Ok, if design is fine with it (which was expected) we come to a bigger problem. Right now I'm working to strip out unnecessary features and prototype code. So far, that has resulted in 9,000 lines of code removed. 9,000. Yes, that is more than what's left. It's also as many as a good-sized novel. https://github.com/snowdriftcoop/snowdrift/compare/master...chreekat:reboot?expand=1 IMO this project is dead and we don't know it yet. We HAVE to continue stripping out unusable code in order to resuscitate it. Doing so, of course, massively conflicts with the changes you (fr33) are making; changes that are hard to make precisely because there's so much dead weight. This causes me — and presumably you — some tension. > I definitely want to see *all* the stuff connected to work packages in > OP when it's not just minor typo fixes etc. And to that end, I hope the > dev team will already work to add stuff to OP and add more concrete > tasks to the existing user stories to make the already entered items > complete. I still can't make heads or tails of OpenProject. I don't think I can take on the project manager role of managing that tool. And it *should* be managed, by some one person or another. I guess that's a different topic. To be more *on* topic, the act of stripping out dead code is creating some new tasks. I definitely want to share them and all that. OpenProject is the tool to do it with. Can I pass the tasks on to someone else who can take the time to figure out the best way to use OpenProject? (Apologies for cross posting to discuss@, but there's some larger topics here and I want to include more people.) signature.asc Description: Digital signature ___ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
In this case, I'm fine with moving forward but only if it's otherwise clean progress. I definitely want to see *all* the stuff connected to work packages in OP when it's not just minor typo fixes etc. And to that end, I hope the dev team will already work to add stuff to OP and add more concrete tasks to the existing user stories to make the already entered items complete. I like the direction fr33domlover is going here anyway. signature.asc Description: OpenPGP digital signature ___ Dev mailing list Dev@lists.snowdrift.coop https://lists.snowdrift.coop/mailman/listinfo/dev
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
I think this is the kind of thing that it's important for you (chreekat) to get input on, but is ultimately your decision. It's also the kind of thing I'm having trouble working through on my own. Originally I had more to this email but then decided it's a separate topic and deserves its own email. Sending it shortly. On Mon, Mar 7, 2016 at 3:00 PM, Bryan Richter wrote: Before I comment on this patch, I think we should make sure that Snowdrift.coop at large is ok with this change, and that that "ok" is made real by adding the feature to OpenProject. I want to get in the habit of doing feature-work that is in OpenProject, and only that is in OpenProject. From the designer/owner side, that ensures they get a chance to approve and prioritize work, and from the developer side, it means we have a clear understanding of new development we're responsible for. I think both aspects are equally important. Still, this is probably a good thing, so I've pushed this commit to a new branch to ease collaboration. https://git.gnu.io/snowdrift/snowdrift/tree/user-nicknames On Mon, Mar 07, 2016 at 02:13:07PM +0200, fr33domlover wrote: From: fr33domlover Making UserR take a Text that refers to a whole new User field is a big change. Many handlers and templates need to be updated. Therefore please read below carefully to understand my plan and what exactly this commit does. The GOAL is to move all UserId-based routes to use UserHandle instead, which is Text. That "handle" references a new 'userNick` field in the User table. But since this is a huge change, this commit does a smaller change. The rest will come in the next patches. What this commit does is: 1. Update the UserR route and add a deprecated UserByIdR route 2. Add the 'userNick' field to account creation and account update forms 3. Require a pattern for the 'userNick' field to avoid all-digit nicknames and other potential issues 4. Fix all handlers and templates to pass the 'userNick' to 'UserR' instead of the 'userId'. That includes inserting 'get404' calls in several places just to get the User value, and other helpers that will be removed later. They are used just so that the code builds and works after applying this patch. The next patch(es) will update all the other handlers and probably change some of the helper functions to work with the new 'userNick' field. Before this gets committed, some input/review from dev and desig teams will be great. But don't be pedantic, as the next commits will change many things and will remove some of the ugly parts used here temporarily. I suggest we make this change in 2 steps because it's so big: 1. Change the routes and UI as needed, and do whatever is needed to make the code build again 2. When done, refactor and add helpers and put all the chaos back to order --- config/models| 7 + config/routes| 3 +- src/Foundation.hs| 24 +++- src/Handler/NewDesign.hs | 19 ++- src/Handler/Project.hs | 20 +-- src/Handler/User/Comment.hs | 1 + src/Handler/User/Delete.hs | 3 +- src/Handler/User/Edit.hs | 7 +- src/Handler/User/NewDiscussion.hs| 1 + src/Handler/User/Notifications.hs| 3 +- src/Handler/User/ProjectNotifications.hs | 3 +- src/Handler/User/SelectProject.hs| 3 +- src/Handler/User/User.hs | 3 +- src/Handler/User/Utils.hs| 2 +- src/Handler/Who.hs | 10 +- src/Model/Transaction.hs | 2 +- src/Model/User.hs| 7 +- src/Model/User/Internal.hs | 18 +-- src/View/SnowdriftEvent.hs | 22 +-- src/View/User.hs | 37 - templates/application.hamlet | 2 +- templates/auth/create-user-form.hamlet | 12 +- templates/comment.hamlet | 7 +- templates/default/navbar.hamlet | 35 ++--- templates/invite.hamlet | 8 +- templates/navbar.hamlet | 8 +- templates/project_patrons.hamlet | 2 +- templates/project_transactions.hamlet| 2 +- templates/sponsors.hamlet| 226 +++ templates/tag.hamlet | 2 +- templates/user.hamlet| 2 +- templates/user_discuss.hamlet| 2 +- templates/user_discussion_wrapper.hamlet | 2 +- templates/user_tickets.hamlet| 2 +- templates/users.hamlet | 2 +- templates/who.hamlet | 4 +- templates/wiki_history.hamlet| 2 +- tests/TestImport.hs | 2 +- 38 files changed, 295 insertions(+), 222 deletions(-) diff --git a/config/models b/confi
Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
Before I comment on this patch, I think we should make sure that Snowdrift.coop at large is ok with this change, and that that "ok" is made real by adding the feature to OpenProject. I want to get in the habit of doing feature-work that is in OpenProject, and only that is in OpenProject. From the designer/owner side, that ensures they get a chance to approve and prioritize work, and from the developer side, it means we have a clear understanding of new development we're responsible for. I think both aspects are equally important. Still, this is probably a good thing, so I've pushed this commit to a new branch to ease collaboration. https://git.gnu.io/snowdrift/snowdrift/tree/user-nicknames On Mon, Mar 07, 2016 at 02:13:07PM +0200, fr33domlover wrote: > From: fr33domlover > > Making UserR take a Text that refers to a whole new User field is a big > change. Many handlers and templates need to be updated. Therefore please > read below carefully to understand my plan and what exactly this commit > does. > > The GOAL is to move all UserId-based routes to use UserHandle instead, > which is Text. That "handle" references a new 'userNick` field in the > User table. But since this is a huge change, this commit does a smaller > change. The rest will come in the next patches. What this commit does > is: > > 1. Update the UserR route and add a deprecated UserByIdR route > 2. Add the 'userNick' field to account creation and account update forms > 3. Require a pattern for the 'userNick' field to avoid all-digit >nicknames and other potential issues > 4. Fix all handlers and templates to pass the 'userNick' to 'UserR' >instead of the 'userId'. That includes inserting 'get404' calls in >several places just to get the User value, and other helpers that >will be removed later. They are used just so that the code builds and >works after applying this patch. > > The next patch(es) will update all the other handlers and probably > change some of the helper functions to work with the new 'userNick' > field. > > Before this gets committed, some input/review from dev and desig teams > will be great. But don't be pedantic, as the next commits will change > many things and will remove some of the ugly parts used here > temporarily. > > I suggest we make this change in 2 steps because it's so big: > > 1. Change the routes and UI as needed, and do whatever is needed to make the >code build again > 2. When done, refactor and add helpers and put all the chaos back to order > --- > config/models| 7 + > config/routes| 3 +- > src/Foundation.hs| 24 +++- > src/Handler/NewDesign.hs | 19 ++- > src/Handler/Project.hs | 20 +-- > src/Handler/User/Comment.hs | 1 + > src/Handler/User/Delete.hs | 3 +- > src/Handler/User/Edit.hs | 7 +- > src/Handler/User/NewDiscussion.hs| 1 + > src/Handler/User/Notifications.hs| 3 +- > src/Handler/User/ProjectNotifications.hs | 3 +- > src/Handler/User/SelectProject.hs| 3 +- > src/Handler/User/User.hs | 3 +- > src/Handler/User/Utils.hs| 2 +- > src/Handler/Who.hs | 10 +- > src/Model/Transaction.hs | 2 +- > src/Model/User.hs| 7 +- > src/Model/User/Internal.hs | 18 +-- > src/View/SnowdriftEvent.hs | 22 +-- > src/View/User.hs | 37 - > templates/application.hamlet | 2 +- > templates/auth/create-user-form.hamlet | 12 +- > templates/comment.hamlet | 7 +- > templates/default/navbar.hamlet | 35 ++--- > templates/invite.hamlet | 8 +- > templates/navbar.hamlet | 8 +- > templates/project_patrons.hamlet | 2 +- > templates/project_transactions.hamlet| 2 +- > templates/sponsors.hamlet| 226 > +++ > templates/tag.hamlet | 2 +- > templates/user.hamlet| 2 +- > templates/user_discuss.hamlet| 2 +- > templates/user_discussion_wrapper.hamlet | 2 +- > templates/user_tickets.hamlet| 2 +- > templates/users.hamlet | 2 +- > templates/who.hamlet | 4 +- > templates/wiki_history.hamlet| 2 +- > tests/TestImport.hs | 2 +- > 38 files changed, 295 insertions(+), 222 deletions(-) > > diff --git a/config/models b/config/models > index a592753..bf64b14 100644 > --- a/config/models > +++ b/config/models > @@ -16,6 +16,12 @@ Transaction > > User > ident Text > +-- ^ Private login name, never shown in UI, may be an email address in > the > +-- case of Persona logins. > +nick Text
[Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route
From: fr33domlover Making UserR take a Text that refers to a whole new User field is a big change. Many handlers and templates need to be updated. Therefore please read below carefully to understand my plan and what exactly this commit does. The GOAL is to move all UserId-based routes to use UserHandle instead, which is Text. That "handle" references a new 'userNick` field in the User table. But since this is a huge change, this commit does a smaller change. The rest will come in the next patches. What this commit does is: 1. Update the UserR route and add a deprecated UserByIdR route 2. Add the 'userNick' field to account creation and account update forms 3. Require a pattern for the 'userNick' field to avoid all-digit nicknames and other potential issues 4. Fix all handlers and templates to pass the 'userNick' to 'UserR' instead of the 'userId'. That includes inserting 'get404' calls in several places just to get the User value, and other helpers that will be removed later. They are used just so that the code builds and works after applying this patch. The next patch(es) will update all the other handlers and probably change some of the helper functions to work with the new 'userNick' field. Before this gets committed, some input/review from dev and desig teams will be great. But don't be pedantic, as the next commits will change many things and will remove some of the ugly parts used here temporarily. I suggest we make this change in 2 steps because it's so big: 1. Change the routes and UI as needed, and do whatever is needed to make the code build again 2. When done, refactor and add helpers and put all the chaos back to order --- config/models| 7 + config/routes| 3 +- src/Foundation.hs| 24 +++- src/Handler/NewDesign.hs | 19 ++- src/Handler/Project.hs | 20 +-- src/Handler/User/Comment.hs | 1 + src/Handler/User/Delete.hs | 3 +- src/Handler/User/Edit.hs | 7 +- src/Handler/User/NewDiscussion.hs| 1 + src/Handler/User/Notifications.hs| 3 +- src/Handler/User/ProjectNotifications.hs | 3 +- src/Handler/User/SelectProject.hs| 3 +- src/Handler/User/User.hs | 3 +- src/Handler/User/Utils.hs| 2 +- src/Handler/Who.hs | 10 +- src/Model/Transaction.hs | 2 +- src/Model/User.hs| 7 +- src/Model/User/Internal.hs | 18 +-- src/View/SnowdriftEvent.hs | 22 +-- src/View/User.hs | 37 - templates/application.hamlet | 2 +- templates/auth/create-user-form.hamlet | 12 +- templates/comment.hamlet | 7 +- templates/default/navbar.hamlet | 35 ++--- templates/invite.hamlet | 8 +- templates/navbar.hamlet | 8 +- templates/project_patrons.hamlet | 2 +- templates/project_transactions.hamlet| 2 +- templates/sponsors.hamlet| 226 +++ templates/tag.hamlet | 2 +- templates/user.hamlet| 2 +- templates/user_discuss.hamlet| 2 +- templates/user_discussion_wrapper.hamlet | 2 +- templates/user_tickets.hamlet| 2 +- templates/users.hamlet | 2 +- templates/who.hamlet | 4 +- templates/wiki_history.hamlet| 2 +- tests/TestImport.hs | 2 +- 38 files changed, 295 insertions(+), 222 deletions(-) diff --git a/config/models b/config/models index a592753..bf64b14 100644 --- a/config/models +++ b/config/models @@ -16,6 +16,12 @@ Transaction User ident Text +-- ^ Private login name, never shown in UI, may be an email address in the +-- case of Persona logins. +nick Text default=concat('user-',floor(random()*10)) +-- ^ Public user unique nickname, shown in the UI. +-- TODO the default value is meant just for initial migration, remove it +--once all users get assigned auto-generated nicks email Text Maybe email_verifiedBool default=false createdTs UTCTime @@ -35,6 +41,7 @@ User discussionDiscussionId default=nextval('discussion_id_seq'::regclass) UniqueUser ident +UniqueUserNick nick UniqueUserAccount account UniqueUserDiscussion discussion diff --git a/config/routes b/config/routes index 999f36b..7118d51 100644 --- a/config/routes +++ b/config/routes @@ -74,7 +74,8 @@ -- ## Browsing a particular user (may need fleshing out?) -- -/u/#UserHandle UserR GET +/u/!#UserIdUserByIdR GET +/u/#UserHandle UserR GET -- Yesod jibber jabber /static StaticR St