public inbox for sourcenav@sourceware.org
 help / color / mirror / Atom feed
* Suggestions for future releases
@ 2000-11-13  0:38 Reiner Suikat
  2000-11-13  1:26 ` Ian Roxborough
  0 siblings, 1 reply; 2+ messages in thread
From: Reiner Suikat @ 2000-11-13  0:38 UTC (permalink / raw)
  To: sourcenav

Hello,

after working for a few days with sourcenav I'm very impressed with it! This
is really a great tool to manage our software project consisting of some
hundreds of files. It only took me a day to get the entire project with all
build targets set up.

However, as with every neat thing, there is room for improvement. Here are
some suggestions for things that I consider extremely useful:

1) Import and export of build targets. I have found no way to exchange build
target definitions between users. Since our project consists of about 20
shared libs and 10 executables it is extremely annoying, if every user has
to set up all targets himself. The only way to copy target definitions at
this time appears to copy the .proj file. Unfortunately this also contains
other things like user specific settings, which one might not want to
overwrite.
I think an import/exprot facility should be fairly easy to add, as writing
project definitions to and from the .proj file is implemented anyway. All it
needs are menu entries to import or export selected (or all) targets to an
external file (in .proj format). Of course, this requires also some
overwrite protection mechanism.

2) Meta or super targets. With this I mean targets that define a set of
other targets to be build. As said before, we have about 30 targets in our
project, so rebuilding the whole thing requires 30 separate builds. With a
super target one could do this in one step. Obviously it would be neat if
one could define different such super targets, like build all shared libs in
the project.

3) Projectwide Defines/Compiler flags/Include paths. This would allow to
change defines for the entire project easily. Such changes would be useful
when moving the software to another machine or architecture. As a workaround
it is of course possible to use environment variables, but that is less
elegant.

4) A version control view of the entire project. Sourcenav's version control
support is great for single files, there is nothing missing here. But there
is no support for the project as a whole, like a list of files that are
modified locally or that need to be updated from the repository. This would
be a great addition also. (Of course, one could use standalone version
control software for that, but that means working with two different tools
rather than one integrated tool.)

These are my suggestions for things I consider useful or missing in
sourcenav. Again, I am very impressed with sourcenav! I would like to see
other peoples opinions on these and especially of course, if any of these
are already in the works ...

Greetings

Reiner
--
Reiner Suikat
Institute of Flight Guidance
German Aerospace Center (DLR)
reiner.suikat@dlr.de

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Suggestions for future releases
  2000-11-13  0:38 Suggestions for future releases Reiner Suikat
@ 2000-11-13  1:26 ` Ian Roxborough
  0 siblings, 0 replies; 2+ messages in thread
From: Ian Roxborough @ 2000-11-13  1:26 UTC (permalink / raw)
  To: Reiner Suikat; +Cc: sourcenav

Reiner Suikat wrote:
> 1) Import and export of build targets. I have found no way to exchange build
> target definitions between users. Since our project consists of about 20
> shared libs and 10 executables it is extremely annoying, if every user has
> to set up all targets himself. The only way to copy target definitions at
> this time appears to copy the .proj file. Unfortunately this also contains
> other things like user specific settings, which one might not want to
> overwrite.
> I think an import/exprot facility should be fairly easy to add, as writing
> project definitions to and from the .proj file is implemented anyway. All it
> needs are menu entries to import or export selected (or all) targets to an
> external file (in .proj format). Of course, this requires also some
> overwrite protection mechanism.

I've been thinking about this for a while now.  One idea I'm
kind of being to like is that of exporting/storing build target
infos in XML format.  Ideally these XML files will be able to
replace Makefiles to some extent (or Makefile.am).  SN would
be able to load up these XML files and build the projects they
represent.  But, using a tool like sn2make you could generate
regular makefiles (automated build systems, builds on headless
or remote boxes.

  $ sn2make -f mybuildtarget.sn | make all   (or whatever)

What I'd really like is a system that can not only replace
makefiles but also handle tricks and coolness of automake and
autoconf.  But without forcing developers into a GUI environment
(it'll be easier in Source-Navigator, but you can still easily
do builds, etc. from the command line).
 
> 2) Meta or super targets. With this I mean targets that define a set of
> other targets to be build. As said before, we have about 30 targets in our
> project, so rebuilding the whole thing requires 30 separate builds. With a
> super target one could do this in one step. Obviously it would be neat if
> one could define different such super targets, like build all shared libs in
> the project.

I've also thought about this to some extent.  Actually, this is
what I wanted to implement the first time around, but I called them
abstract targets.  Unfortunately, it was going to take more time
than I had to implement.
 
> 3) Projectwide  Defines/Compiler flags/Include paths. This would allow to
> change defines for the entire project easily. Such changes would be useful
> when moving the software to another machine or architecture. As a workaround
> it is of course possible to use environment variables, but that is less
> elegant.

Also, Defines/Compiler flags/Include paths/etc., on a per file basis
within a build target.
 
> 4) A version control view of the entire project. Sourcenav's version control
> support is great for single files, there is nothing missing here. But there
> is no support for the project as a whole, like a list of files that are
> modified locally or that need to be updated from the repository. This would
> be a great addition also. (Of course, one could use standalone version
> control software for that, but that means working with two different tools
> rather than one integrated tool.)

This is a "historic" problem in SN.  The version control interfaces
was designed to use many different type of version control in a kind
of plug-n-play way (add the specs to your config file a Robert's your
dad's brother, it works!).  Of course it doesn't work so great due
to the conceptual differences between different version control
systems.  This is the main reason it works for single files only...

So, for things to work at the "entire project" level, we need to
rewrite the version control UI for each version control system
we want to support.

One feature I'd like to add (post 5.0 release) is to see which
files in your project are current, changed locally and changed
in the repository.

> These are my suggestions for things I consider useful or missing in
> sourcenav. Again, I am very impressed with sourcenav! I would like to see
> other peoples opinions on these and especially of course, if any of these
> are already in the works ...

The first three items, I believe, are essential if we want to
be a serious IDE.

Anyway, I'm glad to here you like Source-Navigator and thanks
for the feedback.

Ian.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-11-13  1:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-11-13  0:38 Suggestions for future releases Reiner Suikat
2000-11-13  1:26 ` Ian Roxborough

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).