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

Tag a new version #9

Open
ryandesign opened this issue Feb 17, 2015 · 12 comments
Open

Tag a new version #9

ryandesign opened this issue Feb 17, 2015 · 12 comments

Comments

@ryandesign
Copy link

Could you please tag a new version of MongoObjCDriver—one with which MongoHub 3.x can be built? MongoHub 3 cannot be built with the latest tagged version of MongoObjCDriver, 1.0.6, because, among possibly other things, it needs the -connectTimeout and -socketTimeout methods that were added to MongoObjCDriver after the 1.0.6 release.

@jeromelebel
Copy link
Owner

That's true I don't do much tag and version for MongoObjCDriver. But I think the issue is different. How did you get MongoHub? with a clone using a http:// link?

@ryandesign
Copy link
Author

I have added MongoHub and MongoObjCDriver to MacPorts, fetching tarballs over http from github tags.

@jeromelebel
Copy link
Owner

the issue is find a way to know which sha1 of MongoObjCDriver should be used with a version of MongoHub. I don't known how to have that.

I have a script in Xcode to have MongoObjCDriver automatically downloaded, but it doesn't work well if someone gets MongoHub with git clone http:// or while downloading the sources.

Are you planning to expose MongoObjCDriver as a package in MacPorts? I guess I could automatically tag this project with the same version than MongoHub, so it would be easy to get the right version.

@jeromelebel
Copy link
Owner

I would need to do the same with mongo-c-driver and libbson. There is the same issue with those projects.

@ryandesign
Copy link
Author

Why do you use a fork of mongo-c-driver, and not the official version?

@ryandesign
Copy link
Author

I did add your MongoObjCDriver, and the official versions of libbson and mongo-c-driver, as separate packages in MacPorts already.

@jeromelebel
Copy link
Owner

too many warnings to fix in mongo-c-driver. Also I've changed to use the os x api for ssl instead of openssl.

MongoObjcCDriver can't use the official version of libbson and mongo-c-driver.

@ryandesign
Copy link
Author

Today I added the official versions of mongo-c-driver 1.1.0 and libbson 1.1.0, and your MongoObjCDriver 1.0.6 and MongoHub 2.7b10 to MacPorts. It seems to work. But I can't build later versions of MongoHub with this version of MongoObjCDriver.

Having your own versions of mongo-c-driver and libbson is confusing. Can't you contribute your changes back to the original developers for inclusion in the official version?

If you are developing libraries that are meant to be used on their own, then you should version and release them, and use specific versions of them in MongoHub, and make it easier to build MongoHub using existing copies of those libraries already installed on the system. If, on the other hand, you are developing libraries that are meant to be used only by MongoHub internally, then you should provide a downloadable tarball for each version of MongoHub that includes everything needed to build that version of MongoHub, including the correct versions of all the internal libraries, as I explained when I filed jeromelebel/MongoHub-Mac#12 3+ years ago last time I tried to put MongoHub into MacPorts.

@jeromelebel
Copy link
Owner

I've updated my scripts. Now a tag will be created in MongoObjCDriver, mongo-c-driver and libbson for each version of MongoHub.

And to build MongoObjcCDriver, you should let the Xcode project download automatically the subprojects. Now it will download the exact needed version (instead of just getting the latest version).

Did you find the solution for target version problem in MongoHub?

@jeromelebel
Copy link
Owner

for mongo-c-driver and libbson, I already made few pull request. But they have their own schedules. I will not go back to mongodb version. OpenSSL doesn't exist on iOS, so I can't use mongodb version.

@jeromelebel
Copy link
Owner

If you want to install MongoObjCDriver with macports, that's cool. But just make Xcode build the projet (forget about the submodule in it), and install the framework. That's all.

@ryandesign
Copy link
Author

I've updated my scripts. Now a tag will be created in MongoObjCDriver, mongo-c-driver and libbson for each version of MongoHub.

And to build MongoObjcCDriver, you should let the Xcode project download automatically the subprojects. Now it will download the exact needed version (instead of just getting the latest version).

Thanks, this is a great improvement for repeatable builds.

A build system that downloads additional code is still undesirable from MacPorts' standpoint so what I plan to do after the next MongoHub release is to have the MacPorts MongoHub package download the specific tagged versions of MongoObjCDriver, mongo-c-driver and libbson from your github and use them as internal libraries.

for mongo-c-driver and libbson, I already made few pull request. But they have their own schedules. I will not go back to mongodb version. OpenSSL doesn't exist on iOS, so I can't use mongodb version.

It looks like they accepted several of your pull requests, but unfortunately not the one in libbson that fixes the len parameter to be a size_t like it should have been because that would break the API. Getting SecureTransport support in the official mongo-c-driver would be great too, but I see that is still being discussed.

If you want to install MongoObjCDriver with macports, that's cool. But just make Xcode build the projet (forget about the submodule in it), and install the framework. That's all.

That's what I do, but patching the Xcode project to use an external version of mongo-c-driver instead of downloading and building its own copy was quite involved. I think this will be easier if I stop trying to make MongoObjCDriver available separately and just concentrate on making it an internal library in MongoHub, like you do in your build system as shipped.

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

2 participants