Skip to content

ctags fork question #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
NicoHood opened this issue Oct 9, 2016 · 11 comments
Open

ctags fork question #12

NicoHood opened this issue Oct 9, 2016 · 11 comments

Comments

@NicoHood
Copy link

NicoHood commented Oct 9, 2016

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?

@cmaglie
Copy link
Member

cmaglie commented Oct 10, 2016

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...

@NicoHood
Copy link
Author

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.

@cmaglie
Copy link
Member

cmaglie commented Oct 10, 2016

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 :-)

@masatake
Copy link

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

Do you have test cases for the changes ?

@NicoHood
Copy link
Author

The patches seem to be a bit larger, so I cannot simply use the upstream ctags.
df07280...master

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

@masatake
Copy link

@NicoHood,

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

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

@rockstorm101
Copy link

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

@facchinm
Copy link
Member

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.

@massonal
Copy link

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

@facchinm
Copy link
Member

Hi @massonal ,
@arduino/team_tooling is now in charge of the tooling side 🙂
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.

@massonal
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants