X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Mon, 23 Jul 2018 20:31:34 +0200 (CEST) X-X-Sender: igor2 AT igor2priv To: geda-user AT delorie DOT com X-Debug: to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu" From: gedau AT igor2 DOT repo DOT hu Subject: Re: Project file (was Re: [geda-user] gschem multiple pages) In-Reply-To: <20180723174658.32979841DEBA@turkos.aspodata.se> Message-ID: References: <20180723152807 DOT 13d27cadcd023b63aa3fd9c0 AT gmail DOT com> <20180723174658 DOT 32979841DEBA AT turkos DOT aspodata DOT se> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Mon, 23 Jul 2018, karl AT aspodata DOT se wrote: > Igor2: > ... >> Sounds like the "project file" problem. > ... > > Whats the use for a "project file", isn't it sufficient to use the top > level sch file ? If you think in gschem-only, and don't want to save arbitrary per-project config settings, then top level sch is probably enough. In a sense a top level sch is a geda/gaf-only project file that (as far as I understood) does not allowarbitrary config settings but allows referecing the other sheets of the project. However, users seem to need more. Practice showed that even in the simple gschem-pcb relation the top level sch was not enough. That's why gsch2pcb grew its own project file format. But then that was not read by pcb. So if you wanted to configure your footprint lib, you had to configure it in pcb and then in gsch2pcb. And of course, the symbol lib for gschem in a third file. Now what if you want a different footprint lib and symbol lib in different projects? What if you want to provide a self-contained tarball with local libs, without embedding everything? And what if you want to set other, project-specific configuration, such as export output jobs (cam) for pcb-rnd? With classic geda it's normally user config and then affects all your projects, or it's somehow saved in schematics or board file (e.g. pcb's import schematic's sch file names). The project concept is missing, while poeple very often want to share and collaborate on projects, not individual files. When I figured this and introduced optional project files in pcb-rnd, as an extra it brought some code and UI simplification: we don't have different config for pcb-rnd and gsch2pcb-rnd any more and the plan is that genxproj would work from the same project file as well. The project file format is designed in a way that any tool can easily extend it by its own subtree without interfering with other tools. In theory there could be a separate project per tool file for the same project, but I don't think that would be easy for the user. In practice users often work this around with Makefiles or shell scripts, but I am not sure all tools support all possible configuration setting and multi-file-opens on command line. Then if you want to parse such a generic language with a project manager just (e.g. genxproj or xgsch2pcb) to figure the file names and settings, you'll also have hard time. Anyway, pcb-rnd, gsch2pcb-rnd already support it, later on genxproj and cschem will all support the same format. Whoever wants to join and use this format has my full support. Who doesn't like the idea of having project files doesn't need to use it: it's all totally optional. And of course, any developer is free to invent yet another project file format only his tool supports (but I don't think majority of users would love the idea of having 3..4 project files instead of 1). Regards, Igor2