From: David Park on
It's a bit difficult to understand why you are choosing to implement your
application in a non-standard manner and to put everything in non-standard
places. There are certain advantages to putting an application in the
standard place with the standard structure - chief among these being that
it just works. Having to implement many special settings that seem to be
fuzzily documented in Workbench is putting serious obstacles in your path
while you are trying to learn the basic operations.

In any case, if it is really necessary to use such a non-standard structure
WRI should give you more direct help and not just leave it to everyone to
guess.

How many packages do you have in the application and how involved is the
directory structure? Would it be that bad to flatten out the structure? It
may be possible to keep the structure in Workbench. You can right-click on
the project and choose Properties. Then choose Mathematica/Project Paths.
Then use the Source tab and the Add button. You should be able to add all of
the folders that contain package files. I haven't tried this and don't know
how it works, or if it carries through to the deployed application, or even
if "Source" refers to packages or other things.

There may also be methods to tell Mathematica where to look for your
application. But if this involves setting additional system path locations
with Options Inspector, then any users of your application will also have to
be instructed how to do this. And then actually getting them to do it will
be a bit of a chore.

Again, what is the advantage of moving the application away from
$UserBaseDirectory/Applications. In that location Mathematica will
automatically find it. It will appear on the Installed Add-Ons page, where a
user can bring up the documentation and load the package. A Mathematica
Search will automatically find the files and include them on the search
results, even if the package is not loaded. There are all kinds of nice
things, and I don't know how well they hold up once you move to special
structures and locations.

Why don't you want the documentation incorporated with the application at
the standard place? Do you mean you want to move it out of the application?
The paclet goes with the application. They will have the same name. Even if
you have multiple packages in the application, their exported symbols are
flattened out into one paclet.

If there is a persuasive argument for a non-standard structure, which I
haven't heard yet, then WRI should tell you how it can be implemented. Or
they should tell you that it can't be implemented, which would save a lot of
time.


David Park
djmpark(a)comcast.net
http://home.comcast.net/~djmpark/




From: H. Ke=DFler [mailto:kessler.hannes(a)googlemail.com]

My primary problem is that I would like to create help pages of
Mathematica packages stored in directories which are not at the top
level of my private Mathematica Applications directory. The Workbench
creates hyperlinked help pages for such packages which work inside the
Workbench but not when exported to the corresponding subdirectory of
the Mathematica Applications directory. I checked the example you
provided on your homepage (http://www.dbaileyconsultancy.co.uk/
m_documentation/m_documentation.html). But it seems that this example
also deals with help pages for a package in a directory which is on
the top level of the Mathematica Applications directory. If I am
wrong, please correct me. But I would really appreciate if you can
provide more details how to deal with packages in in deeper
subdirectories of the Mathematica Applications directory, no matter of
using the Workbench or some other approach.

Best regards,
Hannes Kessler

On 25 Mrz., 10:25, David Bailey <d...(a)removedbailey.co.uk> wrote:
> Hannes Kessler wrote:
> > However, I have all my packages (many) in a logical hierarchical
> > directory structure in the private Applications folder. It works fine
> > in Mathematica. Rearranging this package system to a plain directory
> > structure requires a lot of package context editing and a lot of time.
> > That's my problem. In addition, much of the order is lost. For this
> > reason I was hoping that it is possible to add help files to the
> > package system in its present order.
>
> Perhaps the most obvious question is, why do you want to use the
> Workbench - there may be other ways to achieve what you want to do!
>
> I too have things set up to my taste, and I don't want to change the way
> I work to suit the Workbench.
>
> David Baileyhttp://www.dbaileyconsultancy.co.uk



From: David Bailey on
H. Ke=DFler wrote:
> My primary problem is that I would like to create help pages of
> Mathematica packages stored in directories which are not at the top
> level of my private Mathematica Applications directory. The Workbench
> creates hyperlinked help pages for such packages which work inside the
> Workbench but not when exported to the corresponding subdirectory of
> the Mathematica Applications directory. I checked the example you
> provided on your homepage (http://www.dbaileyconsultancy.co.uk/
> m_documentation/m_documentation.html). But it seems that this example
> also deals with help pages for a package in a directory which is on
> the top level of the Mathematica Applications directory. If I am
> wrong, please correct me. But I would really appreciate if you can
> provide more details how to deal with packages in in deeper
> subdirectories of the Mathematica Applications directory, no matter of
> using the Workbench or some other approach.
>
Although I only tested the procedure described on my website on a
package structured in the standard way, I think you could generalise it
to some extent to deal with a non-standard setup (for example, the
indexing procedure uses complete path names), but there is no guarantee
that Mathematica will not make some assumptions that prevent this working=
..

Clearly, the best approach would be to try the process out on a toy
package organised in the standard way, then generalise that to a toy
example of your nested structure, and only then move on to your real
problem with some confidence that it would work!

David Bailey
http://www.dbaileyconsultancy.co.uk

From: H. Keßler on
On 28 Mrz., 11:06, David Bailey <d...(a)removedbailey.co.uk> wrote:
> H. Ke=DFler wrote:
> > My primary problem is that I would like to create help pages of
> > Mathematica packages stored in directories which are not at the top
> > level of my private Mathematica Applications directory. The Workbench
> > creates hyperlinked help pages for such packages which work inside the
> > Workbench but not when exported to the corresponding subdirectory of
> > the Mathematica Applications directory. I checked the example you
> > provided on your homepage (http://www.dbaileyconsultancy.co.uk/
> > m_documentation/m_documentation.html). But it seems that this example
> > also deals with help pages for a package in a directory which is on
> > the top level of the Mathematica Applications directory. If I am
> > wrong, please correct me. But I would really appreciate if you can
> > provide more details how to deal with packages in in deeper
> > subdirectories of the Mathematica Applications directory, no matter of
> > using the Workbench or some other approach.
>
> Although I only tested the procedure described on my website on a
> package structured in the standard way, I think you could generalise it
> to some extent to deal with a non-standard setup (for example, the
> indexing procedure uses complete path names), but there is no guarantee
> that Mathematica will not make some assumptions that prevent this working=
> .
>
> Clearly, the best approach would be to try the process out on a toy
> package organised in the standard way, then generalise that to a toy
> example of your nested structure, and only then move on to your real
> problem with some confidence that it would work!
>
> David Baileyhttp://www.dbaileyconsultancy.co.uk

I've got the workbench to deploy the package files and the
documentation to a folder 2 directory levels below $UserBaseDirectory/
Applications. The PacletInfo file gets deployed to $UserBaseDirectory/
Applications/dir1/dir2/PacletInfo.m, the guides notebooks to
$UserBaseDirectory/Applications/dir1/dir2/Documentation/English/
Guides/..., the application packages themselves to $UserBaseDirectory/
Applications/dir1/dir2/..

But Mathematica does not find the documentation. Perhaps it can find
only PacletInfo.m files in $UserBaseDirectory/Applications/dir1 and
not in deeper directory levels?

When I open a documentation notebook manually, the links in it to
other documentation notebooks dont' work. Such a link looks, for
example, as "paclet:English/ref/someReferencePage". I was not
successfull to modify the links manually.

The workbench documentation is rather unclear on the functionality of
the paclet system. Is it possible to describe in a single PacletInfo.m
file the documentation of several applications? Do you know where to
get more information?

Best regards,
Hannes Kessler

From: Albert Retey on
Hi,

> I've got the workbench to deploy the package files and the
> documentation to a folder 2 directory levels below $UserBaseDirectory/
> Applications. The PacletInfo file gets deployed to $UserBaseDirectory/
> Applications/dir1/dir2/PacletInfo.m, the guides notebooks to
> $UserBaseDirectory/Applications/dir1/dir2/Documentation/English/
> Guides/..., the application packages themselves to $UserBaseDirectory/
> Applications/dir1/dir2/..
>
> But Mathematica does not find the documentation. Perhaps it can find
> only PacletInfo.m files in $UserBaseDirectory/Applications/dir1 and
> not in deeper directory levels?

I think that this is the problem, you might be able to get things run
with adopting certain pathes, but since everything that is beyond the
standard case is undocumented it is hard work to find out what works and
if so how.

> When I open a documentation notebook manually, the links in it to
> other documentation notebooks dont' work. Such a link looks, for
> example, as "paclet:English/ref/someReferencePage". I was not
> successfull to modify the links manually.
>
> The workbench documentation is rather unclear on the functionality of
> the paclet system. Is it possible to describe in a single PacletInfo.m
> file the documentation of several applications? Do you know where to
> get more information?

I am quite sure that all these things could in principle be possible in
one way or another: after all the mathematica documentation itself has a
deeper structure than what the workbench supports. But since nothing is
documented and the "global" PacletInfo isn't a plain text .m-file but a
binary database (PacletInfo.db) it is hardly possible to make use of
these features and everything might change in a future version. So my
conclusion is: you can either adopt your stuff to the structure that is
supported by the workbench or don't use it at all. Struggling with all
the details seems to be more work than rearranging the structure of
existing packages...

There is at least one more argument to not use a deeper directory
structure for your packages at this time: In version 7 the documentation
center lets the user uninstall a package with just a mouse click. AFAIK
this will just delete the corresponding directory and if that contains
more than one package/application, all of them will be deleted.

hth,

albert

From: David Park on
One Application ==== One Paclet ==== One Folder directly in
$UserBaseDirectory/Applications.

PacletInfo.m should be at the top level.

The application may contain many packages and many documentation pages.

It's possible that SOME of the resources for the project, such as packages
or some ancillary documentation notebooks, perhaps for each package, could
be at deeper levels within the project. You might have to set Properties,
Project Paths. Any Guide pages should be in the standard place. But you
could make a Guide page with hand constructed links to your own set of
notebooks.

Having an application with hundreds of packages in a nested structure seems
a little dubious to me. It creates an extensive management problem.


David Park
djmpark(a)comcast.net
http://home.comcast.net/~djmpark/




From: H. Ke=DFler [mailto:kessler.hannes(a)googlemail.com]

On 28 Mrz., 11:06, David Bailey <d...(a)removedbailey.co.uk> wrote:
> H. Ke==DFler wrote:
> > My primary problem is that I would like to create help pages of
> > Mathematica packages stored in directories which are not at the top
> > level of my private Mathematica Applications directory. The Workbench
> > creates hyperlinked help pages for such packages which work inside the
> > Workbench but not when exported to the corresponding subdirectory of
> > the Mathematica Applications directory. I checked the example you
> > provided on your homepage (http://www.dbaileyconsultancy.co.uk/
> > m_documentation/m_documentation.html). But it seems that this example
> > also deals with help pages for a package in a directory which is on
> > the top level of the Mathematica Applications directory. If I am
> > wrong, please correct me. But I would really appreciate if you can
> > provide more details how to deal with packages in in deeper
> > subdirectories of the Mathematica Applications directory, no matter of
> > using the Workbench or some other approach.
>
> Although I only tested the procedure described on my website on a
> package structured in the standard way, I think you could generalise it
> to some extent to deal with a non-standard setup (for example, the
> indexing procedure uses complete path names), but there is no guarantee
> that Mathematica will not make some assumptions that prevent this working=
==
> .
>
> Clearly, the best approach would be to try the process out on a toy
> package organised in the standard way, then generalise that to a toy
> example of your nested structure, and only then move on to your real
> problem with some confidence that it would work!
>
> David Baileyhttp://www.dbaileyconsultancy.co.uk

I've got the workbench to deploy the package files and the
documentation to a folder 2 directory levels below $UserBaseDirectory/
Applications. The PacletInfo file gets deployed to $UserBaseDirectory/
Applications/dir1/dir2/PacletInfo.m, the guides notebooks to
$UserBaseDirectory/Applications/dir1/dir2/Documentation/English/
Guides/..., the application packages themselves to $UserBaseDirectory/
Applications/dir1/dir2/..

But Mathematica does not find the documentation. Perhaps it can find
only PacletInfo.m files in $UserBaseDirectory/Applications/dir1 and
not in deeper directory levels?

When I open a documentation notebook manually, the links in it to
other documentation notebooks dont' work. Such a link looks, for
example, as "paclet:English/ref/someReferencePage". I was not
successfull to modify the links manually.

The workbench documentation is rather unclear on the functionality of
the paclet system. Is it possible to describe in a single PacletInfo.m
file the documentation of several applications? Do you know where to
get more information?

Best regards,
Hannes Kessler