ctags icon indicating copy to clipboard operation
ctags copied to clipboard

ctags fork question

Open NicoHood opened this issue 9 years ago • 11 comments

As you already know I am packaging arduino for arch and I want to get rid of the shipped ctags binary. I tried to link to the upstream ctags, but that gave me some compile errors:

expected constructor, destructor, or type conversion before ';' token

Is this ctags a special patched version of ctags which cannot be replaced by upstream? If so, why dont you upload your fixes to upstream, so we do not need to suplicate software?

NicoHood avatar Oct 09 '16 13:10 NicoHood

This repo started as a fork of exhuberant-ctags, but maybe it's better to rebase the changes to universal-ctags, see #2 (Rebase to universal-ctags). It may be not easy to do and it's even harder to test.

arduino-builder has a good set of tests BTW, if the test-suite passes using universal-ctags it may be a good sign that moving to universal-ctags is feasible.

As always time is a factor...

cmaglie avatar Oct 10 '16 15:10 cmaglie

On arch it seems that we use exhuberant-ctags, but it gives me the described error. https://www.archlinux.org/packages/extra/x86_64/ctags/

So I guess your fork has some patched that are not applied upstream. Whatever upstream you use, it would be nice to patch their upstream version instead of using a fork. That'd make it easier to integrate into linux distributions and produce less binary duplication. Mostly one of the reasons why linux is better than windows.

NicoHood avatar Oct 10 '16 17:10 NicoHood

So I guess your fork has some patched that are not applied upstream.

Yes, those are the patches: https://github.com/arduino/ctags/commits/master

Whatever upstream you use, it would be nice to patch their upstream version instead of using a fork.

As you can see from the git history this repo is originally based on the latest release of exhuberant ctags http://ctags.sourceforge.net/, the version 5.8 to be precise. Relased on 09 July 2009. This makes me think that any attempt to provide patch upstream to exhuberant-ctags is just a waste of time.

Probably the best move to do right now, is to try to rebase all the patches on top of univeral-ctags that seems the most active and maintained fork of ctags as @masatake suggested in #2

That'd make it easier to integrate into linux distributions and produce less binary duplication. Mostly one of the reasons why linux is better than windows.

Of course :-)

cmaglie avatar Oct 10 '16 21:10 cmaglie

Yes, those are the patches: https://github.com/arduino/ctags/commits/master

Do you have test cases for the changes ?

masatake avatar Oct 12 '16 00:10 masatake

The patches seem to be a bit larger, so I cannot simply use the upstream ctags. https://github.com/arduino/ctags/compare/df072805f78ee08ba135f6fb70f29b6e17166b25...master

It looks that @masatake is willing to adapt any arduino related changes which would be great.

NicoHood avatar Oct 31 '16 00:10 NicoHood

@NicoHood,

For merging the efforst, test cases that show the intent of changes are needed.

See http://docs.ctags.io/en/latest/units.html

masatake avatar Oct 31 '16 09:10 masatake

Hi guys, I know the issue is old, but what's the status of this? Is there still a plan to "migrate" to universal ctags? Or will this repository be deprecated along with arduino-builder as soon as arduino-cli is released?

CC @cmaglie @facchinm

rockstorm101 avatar Dec 22 '20 15:12 rockstorm101

Hi @rockstorm101 , this fork of ctags is going to stay around for a bit (arduino-cli still uses it). The big plan is to get rid of it sooner or later but surely not before the cli gets a stable release.

facchinm avatar Dec 23 '20 09:12 facchinm

Hello @facchinm I'm currently trying to replicate the sketch build process. As you know, for now it uses this fork of ctags (arduino-cli v.0.21). However, I find the requirement of shipping/embedding this tool cumbersome for my users, especially since it can't be replaced with exuberant-ctags nor universal-ctags (e.g., because of the undocumented T field).

You mentioned you wanted to get rid of it eventually; how do you mean to replace it? Is the will for change even still there? Or is "the cli gets a stable release" too far away in the future to even consider this?

Hi @rockstorm101 , this fork of ctags is going to stay around for a bit (arduino-cli still uses it). The big plan is to get rid of it sooner or later but surely not before the cli gets a stable release.

CC @fpistm

massonal avatar May 20 '22 09:05 massonal

Hi @massonal , @arduino/team_tooling is now in charge of the tooling side :slightly_smiling_face: Removing 'ctags` proved to be very complicated, since all the alternatives (like https://github.com/arduino/arduino-preprocessor, based on clang) have shortcomings in one or more usecases.

facchinm avatar May 23 '22 07:05 facchinm

Ok, thanks for the update! For the moment I'll make do with ctags then, and I stay tuned for updates on arduino-preprocessor 👍.

massonal avatar May 23 '22 08:05 massonal