contacts icon indicating copy to clipboard operation
contacts copied to clipboard

Auto convert from vcf 2.1 while importing [$10]

Open christian-weiss opened this issue 6 years ago • 39 comments

FEATURE REQUEST:

I know you dropped <3.0 support recently as stated here: https://github.com/nextcloud/contacts/issues/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.

christian-weiss avatar Feb 21 '18 09:02 christian-weiss

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.

klawdhfzasjhaa avatar Mar 05 '18 17:03 klawdhfzasjhaa

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

elman22 avatar Apr 05 '18 09:04 elman22

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

hitam4450 avatar Aug 15 '18 17:08 hitam4450

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.

Yethiel avatar Sep 19 '18 13:09 Yethiel

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

skjnldsv avatar Sep 19 '18 13:09 skjnldsv

As a reference: we need https://github.com/mozilla-comm/ical.js/issues/187

skjnldsv avatar Oct 01 '18 16:10 skjnldsv

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

laurent22 avatar Feb 01 '19 10:02 laurent22

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.

bendem avatar May 12 '19 16:05 bendem

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

CodeAlDente avatar Feb 22 '20 15:02 CodeAlDente

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.

christian-weiss avatar Mar 05 '20 10:03 christian-weiss

Could we get to a middle ground where nextcloud detect this is 2.1 and issue an appropriate error message. The current error reporting is quite opaque. With an accurate message users would know were to look.

marmoute avatar Apr 07 '20 09:04 marmoute

Could we get to a middle ground where nextcloud detect this is 2.1 and issue an appropriate error message. The current error reporting is quite opaque. With an accurate message users would know were to look.

Yes! That is a very nice idea :) I guess this crosses #990

skjnldsv avatar Apr 07 '20 09:04 skjnldsv

Could we get to a middle ground where nextcloud detect this is 2.1 and issue an appropriate error message. The current error reporting is quite opaque. With an accurate message users would know were to look.

That's what I asked, but people didn't seem to agree with my request.

@CodeAlDente @NewRedsquare, care to share why the thumb-down?

bendem avatar Apr 07 '20 09:04 bendem

That's what I asked, but people didn't seem to agree with my request.

Sorry if I misunderstood :disappointed: :hugs:

skjnldsv avatar Apr 07 '20 09:04 skjnldsv

  • off comment - @bendem u ask to use a proprietary service that collects your data with a low privacy...

NewRedsquare avatar Apr 07 '20 11:04 NewRedsquare

* off comment - @bendem u ask to use a proprietary service that collects your data with a low privacy...

Alright, I see the misunderstand. I don't ask to use anything, I say that if someone tries to import the backup of google's contact generated by nextcloud the nextcloud android application, it doesn't work and the error is not useful to the user. What I ask is that we detect this case and tell the user why it doesn't work and what's the solution (downloading their contact from the web ui).

The goal is to smooth out the user experience migrating away from proprietary services.

bendem avatar Apr 07 '20 11:04 bendem

Ok, i see now... my fault. I agree with your REAL idea, and adding a "warning" if they import from google contact to avoid it in the future is nice

NewRedsquare avatar Apr 07 '20 11:04 NewRedsquare

thats sad. I dont use Google Calender or Google Contacts. When i export my Contacts and upload the file to my nxtcld to import them, i get errors for all of the contacts. 0% of them can get imported. If i make a Contacts Backup with the Nextcloud-App and then import them, i get fewer Errors. 90% of them are imported.

Blackwidow-sudo avatar Apr 16 '20 19:04 Blackwidow-sudo

As a workaround, people who don't want to use Google services for data privacy reasons could use a self-hosted ownCloud instance and its contacts app. It still seems to support vCard 2.1.

sushidave avatar Jul 28 '20 10:07 sushidave

As a workaround, people who don't want to use Google services for data privacy reasons could use a self-hosted ownCloud instance and its contacts app. It still seems to support vCard 2.1.

Also, no updates since 2 years :stuck_out_tongue_closed_eyes:

skjnldsv avatar Jul 28 '20 10:07 skjnldsv

Could we get to a middle ground where nextcloud detect this is 2.1 and issue an appropriate error message. The current error reporting is quite opaque. With an accurate message users would know were to look.

Yes! That is a very nice idea :) I guess this crosses #990

Closing. Let's be honest, no libraries want to support v2.1 anymore. We're just in a dead end and i'd rather take a stance and make a public statement about it.

What we won't do:

  • Add 2.1 support

What we will/can do

  • Add proper warning for 2.1 vcards
  • Maybe add a way to auto convert to upper versions if possible :shrug:

skjnldsv avatar Aug 22 '20 08:08 skjnldsv

Let keep this one open for

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

skjnldsv avatar Aug 22 '20 08:08 skjnldsv

What we will/can do

* Add proper warning for 2.1 vcards

Yes please !

marmoute avatar Aug 24 '20 14:08 marmoute

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

samweisgamdschie avatar Oct 05 '20 08:10 samweisgamdschie

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! :+1:

skjnldsv avatar Oct 05 '20 09:10 skjnldsv

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.

laurent22 avatar Oct 05 '20 13:10 laurent22

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

skjnldsv avatar Oct 05 '20 13:10 skjnldsv

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

samweisgamdschie avatar Oct 06 '20 09:10 samweisgamdschie

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.

jancborchardt avatar Oct 06 '20 13:10 jancborchardt

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?

samweisgamdschie avatar Oct 08 '20 09:10 samweisgamdschie