diff --git a/MODULE.bazel b/MODULE.bazel index f6eadf283e..ea56c069c4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -2,7 +2,7 @@ # https://github.com/protocolbuffers/protobuf/issues/14313 module( name = "protobuf", - version = "27.4-dev", # Automatically updated on release + version = "27.4", # Automatically updated on release compatibility_level = 1, repo_name = "com_google_protobuf", ) diff --git a/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java b/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java index 7bb1ab405e..e86e10a572 100644 --- a/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java +++ b/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java @@ -29,7 +29,7 @@ public final class RuntimeVersion { public static final int MAJOR = 4; public static final int MINOR = 27; public static final int PATCH = 4; - public static final String SUFFIX = "-dev"; + public static final String SUFFIX = ""; private static final String VERSION_STRING = versionString(MAJOR, MINOR, PATCH, SUFFIX); private static final Logger logger = Logger.getLogger(RuntimeVersion.class.getName()); diff --git a/python/google/protobuf/runtime_version.py b/python/google/protobuf/runtime_version.py index 030c1407ac..91a10605cd 100644 --- a/python/google/protobuf/runtime_version.py +++ b/python/google/protobuf/runtime_version.py @@ -32,7 +32,7 @@ DOMAIN = Domain.PUBLIC MAJOR = 5 MINOR = 27 PATCH = 4 -SUFFIX = '-dev' +SUFFIX = '' def ValidateProtobufRuntimeVersion( diff --git a/src/google/protobuf/any.pb.cc b/src/google/protobuf/any.pb.cc index 8f59367eef..ddfd937008 100644 --- a/src/google/protobuf/any.pb.cc +++ b/src/google/protobuf/any.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/any.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/any.pb.h" diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h index 5c20bea888..65f37922d2 100644 --- a/src/google/protobuf/any.pb.h +++ b/src/google/protobuf/any.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/any.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fany_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fany_2eproto_2epb_2eh diff --git a/src/google/protobuf/api.pb.cc b/src/google/protobuf/api.pb.cc index 160bb3213d..8a1f61af57 100644 --- a/src/google/protobuf/api.pb.cc +++ b/src/google/protobuf/api.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/api.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/api.pb.h" diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h index ea739ba532..8a65d98115 100644 --- a/src/google/protobuf/api.pb.h +++ b/src/google/protobuf/api.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/api.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fapi_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fapi_2eproto_2epb_2eh diff --git a/src/google/protobuf/compiler/java/java_features.pb.cc b/src/google/protobuf/compiler/java/java_features.pb.cc index 2bad229909..10a15878cc 100644 --- a/src/google/protobuf/compiler/java/java_features.pb.cc +++ b/src/google/protobuf/compiler/java/java_features.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/compiler/java/java_features.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/compiler/java/java_features.pb.h" diff --git a/src/google/protobuf/compiler/java/java_features.pb.h b/src/google/protobuf/compiler/java/java_features.pb.h index ea5f410230..c6e1c2e72d 100644 --- a/src/google/protobuf/compiler/java/java_features.pb.h +++ b/src/google/protobuf/compiler/java/java_features.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/compiler/java/java_features.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fjava_2fjava_5ffeatures_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fjava_2fjava_5ffeatures_2eproto_2epb_2eh diff --git a/src/google/protobuf/compiler/plugin.pb.cc b/src/google/protobuf/compiler/plugin.pb.cc index 6a27a6c3d5..a762a4c9f2 100644 --- a/src/google/protobuf/compiler/plugin.pb.cc +++ b/src/google/protobuf/compiler/plugin.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/compiler/plugin.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/compiler/plugin.pb.h" diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h index b697ca1d59..348b9636cc 100644 --- a/src/google/protobuf/compiler/plugin.pb.h +++ b/src/google/protobuf/compiler/plugin.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/compiler/plugin.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fplugin_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fplugin_2eproto_2epb_2eh diff --git a/src/google/protobuf/compiler/versions.h b/src/google/protobuf/compiler/versions.h index 71fe261cf6..13ec77cd72 100644 --- a/src/google/protobuf/compiler/versions.h +++ b/src/google/protobuf/compiler/versions.h @@ -53,9 +53,9 @@ // // Please avoid changing them manually, as they should be updated automatically // by Protobuf release process. -#define PROTOBUF_CPP_VERSION_STRING "5.27.4-dev" -#define PROTOBUF_JAVA_VERSION_STRING "4.27.4-dev" -#define PROTOBUF_PYTHON_VERSION_STRING "5.27.4-dev" +#define PROTOBUF_CPP_VERSION_STRING "5.27.4" +#define PROTOBUF_JAVA_VERSION_STRING "4.27.4" +#define PROTOBUF_PYTHON_VERSION_STRING "5.27.4" namespace google { diff --git a/src/google/protobuf/cpp_features.pb.cc b/src/google/protobuf/cpp_features.pb.cc index c07fd2d172..de0bafc83a 100644 --- a/src/google/protobuf/cpp_features.pb.cc +++ b/src/google/protobuf/cpp_features.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/cpp_features.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/cpp_features.pb.h" diff --git a/src/google/protobuf/cpp_features.pb.h b/src/google/protobuf/cpp_features.pb.h index 4538ee133a..e7f0d12c82 100644 --- a/src/google/protobuf/cpp_features.pb.h +++ b/src/google/protobuf/cpp_features.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/cpp_features.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh diff --git a/src/google/protobuf/descriptor.pb.cc b/src/google/protobuf/descriptor.pb.cc index 63dc12bb5e..918afd2f29 100644 --- a/src/google/protobuf/descriptor.pb.cc +++ b/src/google/protobuf/descriptor.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/descriptor.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/descriptor.pb.h" diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h index 3734614ab7..cfb8fadd90 100644 --- a/src/google/protobuf/descriptor.pb.h +++ b/src/google/protobuf/descriptor.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/descriptor.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fdescriptor_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fdescriptor_2eproto_2epb_2eh diff --git a/src/google/protobuf/duration.pb.cc b/src/google/protobuf/duration.pb.cc index 0c675aab1b..d8bde8e988 100644 --- a/src/google/protobuf/duration.pb.cc +++ b/src/google/protobuf/duration.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/duration.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/duration.pb.h" diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h index 7748623585..af7df0714e 100644 --- a/src/google/protobuf/duration.pb.h +++ b/src/google/protobuf/duration.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/duration.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fduration_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fduration_2eproto_2epb_2eh diff --git a/src/google/protobuf/empty.pb.cc b/src/google/protobuf/empty.pb.cc index d2fb554218..d5dba8a560 100644 --- a/src/google/protobuf/empty.pb.cc +++ b/src/google/protobuf/empty.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/empty.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/empty.pb.h" diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h index afcfc860fc..0119d1dabf 100644 --- a/src/google/protobuf/empty.pb.h +++ b/src/google/protobuf/empty.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/empty.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fempty_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fempty_2eproto_2epb_2eh diff --git a/src/google/protobuf/field_mask.pb.cc b/src/google/protobuf/field_mask.pb.cc index de742930a6..6d45a9e3a6 100644 --- a/src/google/protobuf/field_mask.pb.cc +++ b/src/google/protobuf/field_mask.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/field_mask.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/field_mask.pb.h" diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h index 86d8bcc269..85326cc9e3 100644 --- a/src/google/protobuf/field_mask.pb.h +++ b/src/google/protobuf/field_mask.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/field_mask.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ffield_5fmask_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ffield_5fmask_2eproto_2epb_2eh diff --git a/src/google/protobuf/runtime_version.h b/src/google/protobuf/runtime_version.h index 8d0134f90a..6a25e6f41c 100644 --- a/src/google/protobuf/runtime_version.h +++ b/src/google/protobuf/runtime_version.h @@ -10,6 +10,6 @@ #endif // PROTOBUF_VERSION_SUFFIX #define PROTOBUF_VERSION 5027004 -#define PROTOBUF_VERSION_SUFFIX "-dev" +#define PROTOBUF_VERSION_SUFFIX "" #endif // GOOGLE_PROTOBUF_RUNTIME_VERSION_H__ diff --git a/src/google/protobuf/source_context.pb.cc b/src/google/protobuf/source_context.pb.cc index 04feea58c5..3601738569 100644 --- a/src/google/protobuf/source_context.pb.cc +++ b/src/google/protobuf/source_context.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/source_context.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/source_context.pb.h" diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h index a1c719e2f9..af49a7d3b8 100644 --- a/src/google/protobuf/source_context.pb.h +++ b/src/google/protobuf/source_context.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/source_context.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fsource_5fcontext_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fsource_5fcontext_2eproto_2epb_2eh diff --git a/src/google/protobuf/struct.pb.cc b/src/google/protobuf/struct.pb.cc index df76bb6a13..e585fc9f68 100644 --- a/src/google/protobuf/struct.pb.cc +++ b/src/google/protobuf/struct.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/struct.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/struct.pb.h" diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h index d2fc8c6238..4280c56520 100644 --- a/src/google/protobuf/struct.pb.h +++ b/src/google/protobuf/struct.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/struct.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fstruct_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fstruct_2eproto_2epb_2eh diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 94491e59eb..bf9fafe152 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -48,7 +48,7 @@ namespace internal { #define GOOGLE_PROTOBUF_VERSION 5027004 // A suffix string for alpha, beta or rc releases. Empty for stable releases. -#define GOOGLE_PROTOBUF_VERSION_SUFFIX "-dev" +#define GOOGLE_PROTOBUF_VERSION_SUFFIX "" // Verifies that the protobuf version a program was compiled with matches what // it is linked/running with. Use the macro below to call this function. diff --git a/src/google/protobuf/timestamp.pb.cc b/src/google/protobuf/timestamp.pb.cc index e520049f5d..66e9ba04cf 100644 --- a/src/google/protobuf/timestamp.pb.cc +++ b/src/google/protobuf/timestamp.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/timestamp.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/timestamp.pb.h" diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h index 494097ddac..5e89218e3c 100644 --- a/src/google/protobuf/timestamp.pb.h +++ b/src/google/protobuf/timestamp.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/timestamp.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftimestamp_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftimestamp_2eproto_2epb_2eh diff --git a/src/google/protobuf/type.pb.cc b/src/google/protobuf/type.pb.cc index 00ac4e6415..bfbdd223ab 100644 --- a/src/google/protobuf/type.pb.cc +++ b/src/google/protobuf/type.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/type.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/type.pb.h" diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h index a234b22c56..d60a10fb19 100644 --- a/src/google/protobuf/type.pb.h +++ b/src/google/protobuf/type.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/type.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftype_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftype_2eproto_2epb_2eh diff --git a/src/google/protobuf/wrappers.pb.cc b/src/google/protobuf/wrappers.pb.cc index 37379152f4..577c9826d9 100644 --- a/src/google/protobuf/wrappers.pb.cc +++ b/src/google/protobuf/wrappers.pb.cc @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/wrappers.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #include "google/protobuf/wrappers.pb.h" diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h index ca33077785..908ab1febe 100644 --- a/src/google/protobuf/wrappers.pb.h +++ b/src/google/protobuf/wrappers.pb.h @@ -1,7 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: google/protobuf/wrappers.proto -// Protobuf C++ Version: 5.27.4-dev +// Protobuf C++ Version: 5.27.4 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fwrappers_2eproto_2epb_2eh #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fwrappers_2eproto_2epb_2eh diff --git a/version.json b/version.json index 27953c45a1..e19fd9a722 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { "27.x": { - "protoc_version": "27.4-dev", + "protoc_version": "27.4", "lts": false, - "date": "2024-07-31", + "date": "2024-08-27", "languages": { - "cpp": "5.27.4-dev", - "csharp": "3.27.4-dev", - "java": "4.27.4-dev", - "javascript": "3.27.4-dev", - "objectivec": "3.27.4-dev", - "php": "4.27.4-dev", - "python": "5.27.4-dev", - "ruby": "4.27.4-dev" + "cpp": "5.27.4", + "csharp": "3.27.4", + "java": "4.27.4", + "javascript": "3.27.4", + "objectivec": "3.27.4", + "php": "4.27.4", + "python": "5.27.4", + "ruby": "4.27.4" } } } \ No newline at end of file