Padre will have the notion of a Perl project. As we would like to make things as natural as possible for the Perl developer and we think the distribution methods used for CPAN module are a good way to handle any project Padre will understand a project as a CPAN module. This does not mean that your project needs to end up on CPAN of course. But if your projects directory structure follows that of the modules on CPAN, Padre will be automatically recognize it.
Anyway here are some thoughts of what a project should look like.
First we need to think in terms of a Perl project, but one that can include actually lots of other languages and technologies. Later we should have an idea for projects where the main language is not necessarily Perl and the directory layout is different.
We need to assume that the current working directory of the editor can be anywhere.
For Perl project management we will assume a directory layout similar to what we have in most CPAN distributions. That is
lib/ holding the modules bin/ holding the executable scripts t/ holding the test files
There should be a Makefile.PL or a Build.PL
Select a project is basically select a directory.
It will try to guess the preferred installation system Build.PL or Makefile.PL Then one should have all the standard steps ready in the menu Project Build.PL, Build, Build test, Build testcover, Build dist Build testdist
Create a new project will create the directory and the standard files
Select a project == select a directory assuming the files are already there
Select a project that was already selected once
Later we can integrate with various version control system so a new project might start by pointing to the repository (e.g. svn repo) and checking it out to some local place etc...
How to keep the path of projects on a stick? Their path can be different in different machines.
|#1055||Expand the notion of a "project" in Padre||zenogantner|
|#840||fixed||Display Project info and statistics||szabgab|
|#818||project detection is done in multiple places, refactor needed||jquelin|