Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guide for Dancer2 developers #785

Open
DavsX opened this issue Nov 28, 2014 · 15 comments
Open

Guide for Dancer2 developers #785

DavsX opened this issue Nov 28, 2014 · 15 comments

Comments

@DavsX
Copy link

DavsX commented Nov 28, 2014

Hi!
Is there a guide for Dancer2 developers? (I mean for people, who are working on Dancer2, not with it).
I was looking for a doc's about how to run the local version of Dancer2 (the git directory), when I have Dancer2 already installed via cpanm. Ultimately this is the way of test for example changes I make locally on a real Dancer2 app (useful for debugging etc).

Secondly I was looking for a way to test changes I made in the Dancer2 skeleton files via generating a new Dancer2 app with my local Dancer2 & share folder.

The way I did it is this:

cd ~/workspace/perl/dancer
DANCER2_SHARE_DIR=share/ perl -Ilib script/dancer2 -a testApp

Or running a real Dancer2 app with the local version of Dancer2:

cd ~/workspace/my_dancer_app
PERL5LIB="~/workspace/perl/dancer2/lib:$PERL5LIB" ./bin/app.pl

Or the combination of the two:

cd /tmp
PERL5LIB="/home/davs/workspace/perl/dancer2/lib:$PERL5LIB" DANCER2_SHARE_DIR="/home/davs/workspace/perl/dancer2/share" perl ~/workspace/perl/dancer2/script/dancer2 -a testApp

Is this the way of doing this and if so is it somewhere documented? Or should I document it (where)?

@xsawyerx
Copy link
Member

I had high hopes of just sitting down and writing this but I have little time for it and I'm actually not sure what to cover. I think it'd be easier to actually open this up for discussion.

@DavsX What do you think should be covered in such a guide?

@xsawyerx xsawyerx removed this from the 0.157000 milestone Dec 14, 2014
@DavsX
Copy link
Author

DavsX commented Dec 14, 2014

Well I just discovered, that there is a GitGuide. Now that I think about it maybe it would be sensible to extend it.

About the content that I think should land there..Well, stuff that we need during development :) For example:

  • test should be run in the root dir via prove -rl t
  • the PERL5LIB 'hack' I described in the first post to test dancer apps with the local/development version of Dancer2 (this can be useful for testing changes before commiting them also)
  • maybe to mention that the Dancer2 skeleton changes can be tested by specifying the DANCER2_SHARE_DIR before the dancer2 command

@xsawyerx
Copy link
Member

xsawyerx commented Feb 6, 2015

@DavsX Would you like to jot those down in a preliminary Dancer2::Manual::Developers guide?

@racke
Copy link
Member

racke commented Mar 31, 2015

The Git guide can't be found on CPAN, so potential developers are stuck. Just faced the problem while talking to a new guy.

@xsawyerx
Copy link
Member

Worse than this, the guide is not that helpful. What would be helpful is a review of the codebase so fresh contributors could understand "who's against who" and all that. We can also remove a fair portion on how to submit a pull request by linking to the CPAN-PRC wiki guide I wrote on the topic.

@vorobeez
Copy link

@xsawyerx, what you mean by "review of the codebase"?
In my view, guide will look like a series of articles, where each article will consist review about some Dancer's module (i.e. Dancer2::Core::Error)
I guess article will guide through basic classes, objects, and functions of a module and shed light on the main purpose of a module.
So what do you think about it?

I new at Dancer2 community and i want to learn more about your project. So i may write raw versions of articles about core modules.
And after correction them by some person with better English knowledge you may post them.

@xsawyerx
Copy link
Member

That sounds like a good idea. I think the word "overview" actually fits better to what I thought than "review".

We will be happy to see your contributions. :)

@vorobeez
Copy link

Hello again. Sorry, I was out for a while. But now i have time to handle this task (=
I have some problem with issues. I want to resolve some bug or implement an enhancement related to project's code base, but i can't find appropriate task. Can you advice me some issue, please?

@xsawyerx
Copy link
Member

@vorobeez Would love to help. What is it you're trying to do? How can we help?

@vorobeez
Copy link

@xsawyerx I have a concept for guide for developers that will to want contribute to Dancer 2 project.
I want write some kind of developer's diary. In every article(or chapter) i will tell about my experience in contributing to Dancer 2 Framework.
So i want to begin work with Dancer 2 and write some code for it, but didn't found any appropriate task. Can you advice me some task or bug that i can implement or resolve?
(Sorry for bad english)

@xsawyerx
Copy link
Member

@vorobeez You need not apologize! Most of the core devs don't actually have English as a first language either. :)

When it comes to a developer guide, I'm interested in things that will help others pick up tasks as well. While a diary sounds very interesting (and even a good talk for a conference!) it might not be ideal for other developers if they just want to learn how to get working on Dancer2 itself. "You're saying I need to read a diary before I can start working on the project?" - Either way, I would be very interested in reading it and seeing what we can use from it to create a developers guide for everyone.

We have two tags for tasks people can pick up. The first is Beginner Suitable, used to indicate this ticket does not require special skills or knowledge and would fit beginners, and the second is a tag I introduced recently, Up for grabs to include tickets that have no person current working on them and are open for others to pick up.

Here are two simple documentation tickets you can work on:

Here is a bigger ticket, but still not very complicated (we would be more than happy to help you with it):

Is that a good start?

@vorobeez
Copy link

@xsawyerx, thank you for feedback (=
I will take #919 and after completing it i will start work at the diary, i guess.

@rleir
Copy link

rleir commented Oct 5, 2015

How about a dev guide wiki at http://perldancer.org/contribute? Whoever has a moment can add developer info to the wiki. @vorobeez your diary could have a place in the wiki, and no worries about language.

@vorobeez
Copy link

@rleir, that is sounds good!
Who can create this wiki at the main site?

@rleir
Copy link

rleir commented Oct 13, 2015

My suggestion is that the wiki would be at Github, with a link from http://perldancer.org/contribute/. The wiki here could be enabled only for collaborators on our repository: https://help.github.com/articles/changing-access-permissions-for-wikis. (Or it can be open, but then someone needs to manage it). Hopefully this all would work as well as Wikipedia, with the contents being mostly up to date, mostly well organized, and contributed by whoever wants to 'scratch their itch'. We need to ask Alexis whether he would like to create that link, and maybe pass this idea by the core devs (they might have already discussed this all). @xsawyerx, are we on the right track?

xsawyerx added a commit that referenced this issue Oct 16, 2016
The Manual contains a lengthy explanation of the session (including
pastes of code?) and it was outdated, mentioning the long-removed
Dancer2::Core::Context.

It was replaced with a relatively short-but-extensive explanation
of the current session implementation.

Honestly, I think this would fit more into a developers' guide
(discussed in GH #785) rather than here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants