Skip to content
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

Auto convert from vcf 2.1 while importing [$10] #492

Open
christian-weiss opened this issue Feb 21, 2018 · 39 comments
Open

Auto convert from vcf 2.1 while importing [$10] #492

christian-weiss opened this issue Feb 21, 2018 · 39 comments
Labels
1. to develop Accepted and waiting to be taken care of bounty This issue have a bounty discussion Being discussed enhancement New feature or request feature: import Importing (and exporting)

Comments

@christian-weiss
Copy link

christian-weiss commented Feb 21, 2018

FEATURE REQUEST:

I know you dropped <3.0 support recently as stated here: #433

While in general it is a good thing to remove old standards to force users to do migration to newer standards, to keep a maintainable software solution, but in case of a sync solution like nextcloud/contacts a wide format support is (or should be) a essential attribute of that infrastructure service. My2ct.

Please re-add vcf 2.1 support again (or integrate at least a 2.1to3.0 converter), because 2.1 it is wide spread and still in heavy use.

For example used by:

  • Google Mail Contacts Exporter
  • Android-based Smartphones: e.g. Samsung Galaxy S5 mini, and other devices of the Galaxy family
  • LineageOS (7.1.2)
  • MyPhoneExplorer (1.8.8)
  • Thunderbird (52.6)
  • [Please add further devices in the comments below]

There is a $10 open bounty on this issue. Add to the bounty at Bountysource.

@klawdhfzasjhaa
Copy link

klawdhfzasjhaa commented Mar 5, 2018

Systems / applications that export vCard 2.1 only:

LineageOS (7.1.2)
MyPhoneExplorer (1.8.8)
Thunderbird (52.6)

EDIT: Maybe a workaround / better solution is described in DAVdroid FAQ:

export your contacts from your Android device and import them to your CardDAV service (not recommended).

Do not use the .vcf files exported by Android's Contacts app for any other purpose than importing again to the same Android Contacts app! Those .vcf files are using an ancient vCard format (vCard 2.1) and contain syntax errors. There are good chances that contacts will be corrupt when you try to import these .vcf files anywhere else.

Maybe the decision to drop of versions <= 3.0 was correct and we need to do it in another way:

export your Android contacts from your local account (Contacts / Export to .vcf file) and import them into your DAVdroid account (Contacts / Import from .vcf file)

Afterwards, they will be synced (hopefully correctly) to Nextcloud. It should be put on the documentation then.

@elman22
Copy link

elman22 commented Apr 5, 2018

Import using DAVdroid account works for me, however high resolution images are converted into small thumbnails. I assume they are just 64x64 px.

@hitam4450
Copy link

What is the current status of resolving this issue ???

@skjnldsv skjnldsv mentioned this issue Aug 16, 2018
26 tasks
@skjnldsv skjnldsv added the 2. developing Work in progress label Aug 22, 2018
@skjnldsv skjnldsv added this to the 3.0.0 milestone Aug 22, 2018
@Yethiel
Copy link

Yethiel commented Sep 19, 2018

Many users also carried over contacts from older versions of Outlook so the vCard version remains at an older version as well. I'm also in favor of re-adding support for v2.1.

@skjnldsv
Copy link
Member

This is not that simple.
Almost all the libraries that manages vcards on javascript doesn't support 2.1.

@skjnldsv skjnldsv removed this from the 3.0.0 milestone Sep 28, 2018
@skjnldsv skjnldsv mentioned this issue Oct 1, 2018
@skjnldsv skjnldsv added this to the 3.1.0 milestone Oct 1, 2018
@skjnldsv
Copy link
Member

skjnldsv commented Oct 1, 2018

As a reference: we need kewisch/ical.js#187

@skjnldsv skjnldsv removed this from the 3.1.0 milestone Oct 1, 2018
@skjnldsv skjnldsv added 0. to triage Pending approval or rejection. This issue is pending approval. and removed 2. developing Work in progress labels Jan 15, 2019
@laurent22
Copy link

@christian-weiss, maybe you can add to your list Thunderbird, as it also only exports to vCard 2.1. Because of this I haven't been able to move to Nextcloud Card.

@jospoortvliet jospoortvliet changed the title re-add vcf 2.1 format support (in contact import function) re-add vcf 2.1 format support (in contact import function) [$10] Apr 23, 2019
@jospoortvliet jospoortvliet added the bounty This issue have a bounty label Apr 23, 2019
@bendem
Copy link

bendem commented May 12, 2019

Please at least provide a useful error message that tells users to download their contacts from https://contacts.google.com instead of having them dig up server logs.

@CodeAlDente
Copy link

Almost all of my android mobile devices and email clients such as Thunderbird work with 2.1. I wanted to use this plugin to get rid off external services especially Google.

It seems to me that a lot of more software and devices rely on that older version. Although I do understand that sooner or later, we have to switch to a newer version to benefit from stability and security improvements. But you guys can not just drop support for a version that is widely used like this.

I was able to migrate the most of my contacts to the new version but still have to add some extra information which will now take a few hours...

@christian-weiss
Copy link
Author

I updated the description to have all affected devices/software at one place.
In addition i increased the bounty to 20 USD - hope it helps to motivate someone.

@skjnldsv skjnldsv added the discussion Being discussed label Mar 5, 2020
@skjnldsv skjnldsv added wontfix This will not be worked on and removed 0. to triage Pending approval or rejection. This issue is pending approval. labels Aug 22, 2020
@skjnldsv skjnldsv reopened this Aug 22, 2020
@skjnldsv
Copy link
Member

Let keep this one open for

  • Maybe add a way to auto convert to upper versions if possible shrug

@skjnldsv skjnldsv added 1. to develop Accepted and waiting to be taken care of and removed wontfix This will not be worked on labels Aug 22, 2020
@skjnldsv skjnldsv changed the title re-add vcf 2.1 format support (in contact import function) [$10] Auto convert from vcf 2.1 while importing [$10] Aug 22, 2020
@marmoute
Copy link

What we will/can do

* Add proper warning for 2.1 vcards

Yes please !

@samweisgamdschie
Copy link

At a users and admins point of view, what happened here is real mess. The only real reason why support for v2.1 was dropped is because developers have no proper third party library to use. But what about using an older version of library and import the relevant parts at least? It seems the maintainers of this addon are not good in thinking as a real life user or only develop for themselves which is sad in an enterprise like application like nextcloud. So many users need this, so many companies still use v2.1 with their addressbooks but it's easier to chat a little on github, than find a solution that rocks..

@skjnldsv
Copy link
Member

skjnldsv commented Oct 5, 2020

but it's easier to chat a little on github, than find a solution that rocks

Precisely, otherwise it would have been done already.
Do you have a library to suggest? Of course any contribution is very welcome! 👍

@laurent22
Copy link

I think the issue is that support for v2 was working, then was dropped without providing a replacement. Then it was decided that support will never be restored, although your post implies you'd accept PRs which is in contradiction what you wrote above (" we won’t add 2.1 support”). For me it’s the kind of development process and unclear communication that makes me not trust Nextcloud much.

@skjnldsv
Copy link
Member

skjnldsv commented Oct 5, 2020

although your post implies you'd accept PRs which is in contradiction what you wrote above (" we won’t add 2.1 support”). For me it’s the kind of development process and unclear communication that makes me not trust Nextcloud much.

Right! So let me clarify a bit then. Because I know that there is no proper alternative for supporting v2.1 properly, I wrote the comment above. I'd be happy to have a fully replaced all-in-one lib that does all the magic! But We checked, there is nothing sustainable 🤷
So if anyone have lots of time: feel free. But I (or anyone at Nextcloud here) won't dive into this mess and add 2.1.

@samweisgamdschie
Copy link

It's so sad when fighting for open source software like Nextcloud which also offers an enterprise support but when it comes to such basics (like supporting older versions which is most likely in use in large companies like mine) a user not even gets a proper error message. This is a perfect example for anti FOSS guys to say: "It's not worth it/reliable because it's a hobby project.".

You want a solution: whats with an older commit/version with v2.1 support? How do you support v2.1 earlier? It's easy to find out which version it is (it's a single line in the file) where you can switch between libraries. Or something like this although a bit outdated...

@jancborchardt
Copy link
Member

You want a solution: whats with an older commit/version with v2.1 support? How do you support v2.1 earlier? It's easy to find out which version it is (it's a single line in the file) where you can switch between libraries. Or something like this although a bit outdated...

As @skjnldsv already said, a contribution of this kind would be appreciated! :) We are an open source community and everyone is welcome.

@samweisgamdschie
Copy link

I am not able to contribute, neither in js nor in php (Btw. do I find such an answer ignorant, because not everyone that uses a software has the ability to even write software. Have you ever thought of repairing your car by yourself, when it is broken?)

A quick search in google trends show, that the interest is nearly evenly spread over v2.1, v3.0 and v4.0 in year 2020. The question is, are you (as maintainers of a piece of widely used software) happy with dropping support for such a relevant part of users?

@skjnldsv
Copy link
Member

skjnldsv commented Oct 8, 2020

Have you ever thought of repairing your car by yourself, when it is broken

I do every time I need to fix my car. Though if I find someone that does it for free for me, I don't go and complains about his work. Not having the knowledge to improve/change Nextcloud is ok. Like you said not everyone can, and that's also great, because it gives different point of view.

What is not ok is feeling entitled to fixes and changes into a software that you get for free.
Coming here with sarcastic comments and sassy remarks is not how we contributes nor how I want to start my day. Read our code of conduct

@CodeAlDente
Copy link

CodeAlDente commented Oct 8, 2020

I think the point here is that the version you guys have just dropped is very widely used. And now we as users are facing a difficult situation to deal with it. I do appreciate your time and your contribution for all of us - no doubt. But I guess even as a developer for open source software you should be able to cope with such feedback. The example with the broken car that users supposed to be able to fix, is neither sarcastic or sassy but just what it is: an example.

Unfortunately I had to uninstall this plugin as it is not useful for my case at the moment. That is a shame as it was a very good alternative to Google.

@christian-weiss
Copy link
Author

Expectation management: I think we can treat nextcloud (file share feature) as enterprise ready, but that is a judgement every enterprise business should do on its own. My personal opinion is that nextcloud (file share feature) is a reasonable choice for many companies.
But the plugins like "Contacts" or "Calendar" are not good enough to be counted as enterprise-ready. Interoperability is not wide enough to treat it as a serious solution for business needs. Its sync process is not well enough tested to be stable enough. For example if a contact contains more then 1 date (birthdate, deathdate, celebrationdate) then sync is broken, webUI is broken and so on - for years. As an enterprise you may commit to open source if this software is a core part of your business, but if it is just one out of 100 supporting tools then a company probably will never put efforts into it to fix issue. As long as there is no active development by the community, you should tread the plugins as: hobby software.

A discussion if Nextcloud is enterprise-ready or not should not be part of this ticket.

Again, i would vote for a comeback of the old v2.1 (at least as a one-time import; one-way; from phone to nextcloud; sync via v2.1 is not required).

@laurent22
Copy link

For me it goes back to unclear communication from the project as a whole. With a package under the Nextcloud main repository with a generic name like "contacts" you'd expect something stable and that doesn't introduce major breaking changes, at least not without an alternative being offered, but it's not what's happening.

Perhaps it's not the place to discuss this but Nextcloud should reconsider what they are offering exactly - if it's just file sync they really support then so be it. And then they could make it clear that the other apps are indeed more like hobby projects, not really supported, and perhaps move them to a different namespace like "nextcloud-community" or "nextcloud-lab".

That would be best both for users, who wouldn't have too high expectations, and would put less pressure on developers, who are doing a good job nonetheless, but of course can't do everything.

@samweisgamdschie
Copy link

I am sorry if anyone feels mocked about my posts, it was not my intention. It is just my job as an ops to integrate software into our enterprise environment..

I also end my part of the discussion here. I agree with the former posts/poster with the confusion. I took a closer look on the description of the apps flag "Featured", which says "Featured apps are developed by and within the community. They offer central functionality and are ready for production use."

@skjnldsv
Copy link
Member

skjnldsv commented Oct 15, 2020

you'd expect something stable and that doesn't introduce major breaking changes, at least not without an alternative being offered, but it's not what's happening.

So, despite having 2.1 not really supported in previous version of Nextcloud contacts (and owncloud btw,)
Nextcloud (and owncloud) server are rejecting vcard 2.1 since 2015.
nextcloud/3rdparty@588b130#diff-8ad21f9df86ccad579499e20513b08fc622385482583c2bd33ea7479659d38a2R233
https://github.com/nextcloud/3rdparty/blob/588b1308f4abf58acb3bb8519f6952d9890cca89/sabre/vobject/lib/Component/VCard.php#L233

So while I'm intrigued about why this issue have suddenly gained interest over the last weeks, I'm quite surprise to see people complaining about a decision that was taken 5 years ago.

@skjnldsv
Copy link
Member

you'd expect something stable and that doesn't introduce major breaking changes

Any software will endure breaking changes at some point.
Nextcloud doesn't escape the rule. While we do our best to ease up the User experience, we all have our issues and our way to deal with them the best we can.

@skjnldsv
Copy link
Member

Since there isn't really much more to say, I'll lock this thread.
If anyone want to start working on a proper auto-conversion of vcards 2.1 to 3/4 on upload, feel free to do so, we'll be happy to assit!.

@nextcloud nextcloud locked as too heated and limited conversation to collaborators Oct 15, 2020
@tflidd
Copy link

tflidd commented Dec 30, 2020

Just as others might be interested, I found an external script (python) to convert v2.1 to v3:
https://github.com/jowave/vcard2to3

In my case, it worked for a small address book exported from an android phone.

@ChristophWurst ChristophWurst removed this from the to plan milestone Sep 14, 2021
@joshtrichards joshtrichards added the feature: import Importing (and exporting) label Jan 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
1. to develop Accepted and waiting to be taken care of bounty This issue have a bounty discussion Being discussed enhancement New feature or request feature: import Importing (and exporting)
Projects
None yet
Development

No branches or pull requests