Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-61287

IDL compatibility checker mishandles enterprise module



    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 5.3.0
    • None
    • None
    • None
    • Fully Compatible
    • ALL
    • Replication 2021-12-27, Replication 2022-01-10, Replication 2022-01-24


      For each past release tag T, Evergreen runs:

      python buildscripts/idl/idl_check_compatibility.py -v --include src --include src/mongo/db/modules/enterprise/src idls/T/src src

      Putting the enterprise module on the include path doesn't make sense to me. For IDL files on HEAD, they shouldn't have to import from the enterprise module, otherwise we couldn't build MongoDB without enterprise. And IDL files at T definitely shouldn't import from the enterprise module, unless we check out a past version of it.

      I think that when we check compatibility of IDL files in the "mongo" repo we shouldn't list the enterprise module as an include path. Maybe we shouldn't check out the enterprise module at all.

      Separately, if we want to check backwards compatibility of IDL changes in enterprise, we should do it with a completely separate run of idl_check_compatibility.py: we should do all the steps we do for "mongo", but just for IDL files in "enterprise": check out past versions of enterprise IDL files and compare them all against the latest enterprise IDL files. Right now I think we don't catch incompatible changes to enterprise-only commands.




            huayu.ouyang@mongodb.com Huayu Ouyang
            jesse@mongodb.com A. Jesse Jiryu Davis
            0 Vote for this issue
            6 Start watching this issue