alexbevi / robomongo

Shell-centric cross-platform MongoDB management tool
http://robomongo.org
GNU General Public License v3.0
4 stars 0 forks source link

TODO (upgrade from mongo 2.4 to mongo 3.0.6) #1

Closed alexbevi closed 8 years ago

alexbevi commented 9 years ago

This is just a list of items that need to be addressed during the mongo3 upgrade

alexbevi commented 9 years ago

Patches to mongo source:

diff --git a/src/third-party/mongodb/src/mongo/util/assert_util.h b/src/third-party/mongodb/src/mongo/util/assert_util.h
index 4a932db..acc551a 100644
--- a/src/third-party/mongodb/src/mongo/util/assert_util.h
+++ b/src/third-party/mongodb/src/mongo/util/assert_util.h
@@ -204,6 +204,27 @@ public:
     virtual void appendPrefix(std::stringstream& ss) const;
 };

+#ifdef ROBOMONGO
+    class ParseMsgAssertionException : public MsgAssertionException {
+    public:
+        ParseMsgAssertionException(int c, const std::string& m, int offset, const std::string reason) :
+            MsgAssertionException( c , m ),
+            _reason(reason),
+            _offset(offset) {}
+
+        virtual ~ParseMsgAssertionException() throw() { }
+        virtual bool severe() { return false; }
+
+        std::string reason() const { return _reason; }
+        int offset() const { return _offset; }
+
+    private:
+        std::string _reason;
+        int _offset;
+    };
+#endif
+
+
 MONGO_CLIENT_API MONGO_COMPILER_NORETURN void verifyFailed(const char* expr,
                                                            const char* file,
                                                            unsigned line);
iwubcode commented 9 years ago

@alexbevi - First of all, thanks for working on this! That being said, I signed up just to tell you (before you went to a lot of work) that MongoDB will be switching to SpiderMonkey in 3.2. I think it'd make more sense to code towards that. I'm a little swamped at the moment but feel free to mention what things you'd like help on.

I'd also like to suggest that maybe we start with the essentials then move to the "nice-to-haves". I feel like the original devs put too much on their plates and that's why 0.9.x never came out...just my opinion though.

alexbevi commented 9 years ago

@toswubber I only switched because mongo switched in 2.8 (and i'm targeting 3.0.6). Since SM was the original engine, I don't think falling back will be too difficult.

For the moment, my goals are as follows (in order of priority):

1) Get it to compile against mongo 3 (Linux x86_64 only) 2) Fix build to also work for Windows/OSX 3) Fix SSH/SSL options 4) Fix FIXMEs in the code I added to try to get things to work 5) Pull request

alexbevi commented 8 years ago

Closed this as after talking with @stennie, it didn't make any sense to continue. Going to try and re-do this using the mongo-cxx-driver instead