Skip to content

Commit

Permalink
Merge branch 'master' into mono-2018-06
Browse files Browse the repository at this point in the history
  • Loading branch information
spouliot authored Oct 9, 2018
2 parents 894315a + e4db45e commit f77c434
Show file tree
Hide file tree
Showing 854 changed files with 251,057 additions and 5,831,215 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,4 @@ packages
.DS_Store
jenkins-results
.vs

*.raw
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
[submodule "external/guiunit"]
path = external/guiunit
url = ../../mono/guiunit.git
[submodule "external/macios-binaries"]
path = external/macios-binaries
url = ../../xamarin/macios-binaries
branch = master
[submodule "external/mono"]
path = external/mono
url = ../../mono/mono.git
Expand All @@ -21,7 +25,3 @@
path = external/Xamarin.MacDev
url = ../../xamarin/Xamarin.MacDev
branch = master
[submodule "external/macios-binaries"]
path = external/macios-binaries
url = ../../xamarin/macios-binaries
branch = master
10 changes: 10 additions & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@
/src/audiotoolbox.cs @dalexsoto
/src/AudioUnit @dalexsoto
/src/audiounit.cs @dalexsoto
/src/authenticationservices.cs @spouliot
/src/AVFoundation @mandel-macaque @dalexsoto
/src/avfoundation.cs @mandel-macaque @dalexsoto
/src/AVKit @spouliot @dalexsoto
/src/avkit.cs @spouliot @dalexsoto
/src/CallKit @dalexsoto
/src/callkit.cs @dalexsoto
/src/CarPlay @dalexsoto
/src/carplay.cs @dalexsoto
/src/CFNetwork @spouliot
/src/cfnetwork.cs @spouliot
/src/CloudKit @mandel-macaque
Expand Down Expand Up @@ -92,6 +95,10 @@
/src/homekit.cs @VincentDondain
/src/iad.cs @spouliot
/src/iAd.framework @spouliot
/src/identitylookup.cs @dalexsoto
/src/identitylookupui.cs @dalexsoto
/src/ituneslibrary.cs @mandel-macaque
/src/iTunesLibrary @mandel-macaque
/src/ImageIO @spouliot @chamons
/src/imageio.cs @spouliot @chamons
/src/ImageKit @chamons
Expand Down Expand Up @@ -124,6 +131,9 @@
/src/modelio.cs @VincentDondain
/src/MultipeerConnectivity @spouliot
/src/multipeerconnectivity.cs @spouliot
/src/naturallanguage.cs @mandel-macaque
/src/NaturalLanguage @mandel-macaque
/src/Network @migueldeicaza
/src/NetworkExtension @spouliot
/src/networkextension.cs @spouliot
/src/NotificationCenter @spouliot
Expand Down
74 changes: 31 additions & 43 deletions Make.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,46 @@ include $(TOP)/mk/subdirs.mk
-include $(TOP)/Make.config.inc
$(TOP)/Make.config.inc: $(TOP)/Make.config
@rm -f $@
@printf "IOS_COMMIT_DISTANCE:=$(shell LANG=C; export LANG && git --git-dir $(TOP)/.git log `git --git-dir $(TOP)/.git blame -- ./Make.config HEAD | grep IOS_PACKAGE_VERSION= | sed 's/ .*//' `..HEAD --oneline | wc -l | sed 's/ //g')\n" >> $@
@printf "MAC_COMMIT_DISTANCE:=$(shell LANG=C; export LANG && git --git-dir $(TOP)/.git log `git --git-dir $(TOP)/.git blame -- ./Make.config HEAD | grep MAC_PACKAGE_VERSION= | sed 's/ .*//' `..HEAD --oneline | wc -l | sed 's/ //g')\n" >> $@
@printf "IOS_COMMIT_DISTANCE:=$(shell LANG=C; export LANG && git --git-dir $(TOP)/.git log `git --git-dir $(TOP)/.git blame -- ./Make.versions HEAD | grep IOS_PACKAGE_VERSION= | sed 's/ .*//' `..HEAD --oneline | wc -l | sed 's/ //g')\n" >> $@
@printf "MAC_COMMIT_DISTANCE:=$(shell LANG=C; export LANG && git --git-dir $(TOP)/.git log `git --git-dir $(TOP)/.git blame -- ./Make.versions HEAD | grep MAC_PACKAGE_VERSION= | sed 's/ .*//' `..HEAD --oneline | wc -l | sed 's/ //g')\n" >> $@
@if which ccache > /dev/null 2>&1; then printf "ENABLE_CCACHE=1\nexport CCACHE_BASEDIR=$(abspath $(TOP)/..)\n" >> $@; echo "Found ccache on the system, enabling it"; fi
@if test -d $(TOP)/../maccore; then printf "ENABLE_XAMARIN=1\n" >> $@; echo "Detected the maccore repository, automatically enabled the Xamarin build"; fi

include $(TOP)/Make.versions

PACKAGE_HEAD_REV=$(shell git rev-parse HEAD)

#
# /!\ README /!\
#
# A release branch requires updating:
#
# PACKAGE_HEAD_BRANCH (set to the release branch name, this shows up in the IDE's version information, as well as mtouch/mmp --version)
# IOS_PACKAGE_VERSION (major/minor #)
# MAC_PACKAGE_VERSION (major/minor #)
# PACKAGE_VERSION_REV (set to 0 and increment for service releases or previews)
# (and updating the same on master as well, to next version)
# A release branch requires updating some variables.
# This is done in Make.versions, not here.
#

#
# PACKAGE_HEAD_BRANCH determines the branch name (for wrench builds) that shows up in the
# IDE's version information, as well as mtouch/mmp --version and the AssemblyInformationalVersion
# for product assemblies.
#
# For developer builds, we check with git which branch is the current one (we can't do that
# on wrench, because wrench technically builds hashes, not branches)
#
#
PACKAGE_HEAD_BRANCH?=master
ifeq ($(CURRENT_BRANCH),)
ifeq ($(BUILD_REVISION),)
ifeq ($(BRANCH_NAME),)
# BRANCH_NAME is set in Jenkins, so this is for local builds.
CURRENT_BRANCH:=$(shell git rev-parse --abbrev-ref HEAD)
else
CURRENT_BRANCH:=$(PACKAGE_HEAD_BRANCH)
CURRENT_BRANCH:=$(BRANCH_NAME)
endif
endif

# TODO: reset to 0 after major/minor version bump (SRO) and increment for service releases and previews
# Note: if not reseted to 0 we can skip a version and start with .1 or .2
PACKAGE_VERSION_REV=0

IOS_PRODUCT=Xamarin.iOS
IOS_PACKAGE_NAME=Xamarin.iOS
IOS_PACKAGE_NAME_LOWER=$(shell echo $(IOS_PACKAGE_NAME) | tr "[:upper:]" "[:lower:]")
# NEVER customize IOS_PACKAGE_VERSION itself, other parts (mtouch, web updater) are using the IOS_PACKAGE_VERSION_* variables
IOS_PACKAGE_VERSION=11.17.$(PACKAGE_VERSION_REV).$(IOS_COMMIT_DISTANCE)
IOS_PACKAGE_VERSION_MAJOR=$(word 1, $(subst ., ,$(IOS_PACKAGE_VERSION)))
IOS_PACKAGE_VERSION_MINOR=$(word 2, $(subst ., ,$(IOS_PACKAGE_VERSION)))
IOS_PACKAGE_VERSION_REV=$(PACKAGE_VERSION_REV)
IOS_PACKAGE_VERSION_REV:=$(word 3, $(subst ., ,$(IOS_PACKAGE_VERSION)))
IOS_PACKAGE_VERSION_BUILD=$(IOS_COMMIT_DISTANCE)
IOS_PACKAGE_UPDATE_ID=$(shell printf "2%02d%02d%02d%03d" $(IOS_PACKAGE_VERSION_MAJOR) $(IOS_PACKAGE_VERSION_MINOR) $(IOS_PACKAGE_VERSION_REV) $(IOS_PACKAGE_VERSION_BUILD))

XCODE_VERSION=9.4
XCODE_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_9.4.xip
XCODE_DEVELOPER_ROOT=/Applications/Xcode94.app/Contents/Developer
# Xcode version should have both a major and a minor version (even if the minor version is 0)
XCODE_VERSION=10.0
XCODE_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_10.xip
XCODE_DEVELOPER_ROOT=/Applications/Xcode10.app/Contents/Developer

XCODE94_VERSION=9.4
XCODE94_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_9.4.xip
XCODE94_DEVELOPER_ROOT=/Applications/Xcode94.app/Contents/Developer

# Minimum Mono version
MIN_MONO_VERSION=5.16.0.5
Expand Down Expand Up @@ -89,11 +74,11 @@ MIN_OSX_BUILD_VERSION=10.13
MIN_OSX_VERSION_FOR_IOS=10.11
MIN_OSX_VERSION_FOR_MAC=10.11

IOS_SDK_VERSION=11.4
IOS_SDK_VERSION=12.0
# When bumping OSX_SDK_VERSION also update the macOS version where we execute on bots in jenkins/Jenkinsfile (in the 'node' element)
OSX_SDK_VERSION=10.13
WATCH_SDK_VERSION=4.3
TVOS_SDK_VERSION=11.4
OSX_SDK_VERSION=10.14
WATCH_SDK_VERSION=5.0
TVOS_SDK_VERSION=12.0

MIN_IOS_SDK_VERSION=6.0
MIN_OSX_SDK_VERSION=10.7
Expand Down Expand Up @@ -122,10 +107,14 @@ else
APPLETLS_DEFINES = -d:XAMARIN_APPLETLS
endif

XCODE_MAC_SDKROOT=$(XCODE_DEVELOPER_ROOT)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(OSX_SDK_VERSION).sdk
XCODE_MAC_SDKROOT=$(XCODE_DEVELOPER_ROOT)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
XCODE94_MAC_SDKROOT=$(XCODE94_DEVELOPER_ROOT)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

MAC_CC=$(CCACHE)$(XCODE_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -isysroot $(XCODE_MAC_SDKROOT) -mmacosx-version-min=$(MIN_OSX_VERSION_FOR_MAC) -stdlib=libc++
MAC_CXX=$(CCACHE)$(XCODE_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -isysroot $(XCODE_MAC_SDKROOT) -mmacosx-version-min=$(MIN_OSX_VERSION_FOR_MAC) -stdlib=libc++

MAC_CC=$(CCACHE)$(XCODE_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -isysroot $(XCODE_MAC_SDKROOT) -mmacosx-version-min=$(MIN_OSX_VERSION_FOR_MAC)
MAC_CXX=$(CCACHE)$(XCODE_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -isysroot $(XCODE_MAC_SDKROOT) -mmacosx-version-min=$(MIN_OSX_VERSION_FOR_MAC)
MAC32_CC=$(CCACHE)$(XCODE94_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -isysroot $(XCODE94_MAC_SDKROOT) -mmacosx-version-min=$(MIN_OSX_VERSION_FOR_MAC) -stdlib=libc++
MAC32_CXX=$(CCACHE)$(XCODE94_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -isysroot $(XCODE94_MAC_SDKROOT) -mmacosx-version-min=$(MIN_OSX_VERSION_FOR_MAC) -stdlib=libc++

# This is the temporary directory where the various builds are installed
BUILD_DESTDIR=$(abspath $(TOP)/builds/install)
Expand Down Expand Up @@ -175,7 +164,7 @@ endif

SIMULATOR_SDK=$(XCODE_DEVELOPER_ROOT)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$(IOS_SDK_VERSION).sdk

OBJC_CFLAGS=-ObjC++ -std=c++0x -fno-exceptions
OBJC_CFLAGS=-ObjC++ -std=c++0x -fno-exceptions -stdlib=libc++

COMMON_SIMULATOR_CFLAGS=-mios-simulator-version-min=$(MIN_IOS_SDK_VERSION) -isysroot $(SIMULATOR_SDK) $(CFLAGS) -g $(IOS_COMMON_DEFINES)
SIMULATOR86_CFLAGS=$(COMMON_SIMULATOR_CFLAGS) -arch i386
Expand Down Expand Up @@ -268,10 +257,9 @@ MAC_PRODUCT=Xamarin.Mac
MAC_PACKAGE_NAME=xamarin.mac
MAC_PACKAGE_NAME_LOWER=$(shell echo $(MAC_PACKAGE_NAME) | tr "[:upper:]" "[:lower:]")

MAC_PACKAGE_VERSION=4.9.$(PACKAGE_VERSION_REV).$(MAC_COMMIT_DISTANCE)
MAC_PACKAGE_VERSION_MAJOR=$(word 1, $(subst ., ,$(MAC_PACKAGE_VERSION)))
MAC_PACKAGE_VERSION_MINOR=$(word 2, $(subst ., ,$(MAC_PACKAGE_VERSION)))
MAC_PACKAGE_VERSION_REV=$(PACKAGE_VERSION_REV)
MAC_PACKAGE_VERSION_REV=$(word 3, $(subst ., ,$(MAC_PACKAGE_VERSION)))
MAC_PACKAGE_VERSION_BUILD=$(word 4, $(subst ., ,$(MAC_PACKAGE_VERSION)))
MAC_PACKAGE_VERSION_MAJOR_MINOR=$(MAC_PACKAGE_VERSION_MAJOR).$(MAC_PACKAGE_VERSION_MINOR)
MAC_PACKAGE_UPDATE_ID=$(shell echo $(subst ., ,$(MAC_PACKAGE_VERSION).$(MAC_PACKAGE_VERSION_BUILD)) | awk '{printf "2%02d%02d%02d%03d",$$1,$$2,$$3,$$4}')
Expand Down
47 changes: 47 additions & 0 deletions Make.versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#
# A release branch requires updating the following two variables at the bottom of this file:
#
# IOS_PACKAGE_VERSION (major/minor/revision #)
# MAC_PACKAGE_VERSION (major/minor/revision #)
#
# Update version numbers on master as well, to the next version
#

#
# ** Version numbers **
#
# Versions are defined as: Major.Minor.Revison.Build
#
# Major/minor (first/second numbers - max 2 digits each):
# - Bump for major/minor releases.
#
# Revision (third number - max 2 digits):
# - Reset to 0 after a major or minor bump (do not use 99 for Xcode preview
# branches (use 0 instead), because otherwise we can't bump it further if
# needed).
# - Bump for service releases and previews.
# - Bump if commit distance becomes > 999.
# - Can also be bumped for other reasons (in particular there's no correlation
# between Preview/Service Release #X and Revision #Y).
# - Bumping revision to a high enough number to make it clear that there's
# no correlation is a valid reason to bump.
# - The revision must be bumped at the same time for both iOS and Mac
# (otherwise the commit distance will differ).
# - Also bump if the [IOS|MAC]_PACKAGE_VERSION lines change for any other
# reason (otherwise we end up with repeating version numbers, since the
# commit distance would restart at 0, while the other numbers wouldn't
# change).
# - Any other problem can also usually be solved by bumping the revision.
# - Do not refactor the revision to a separate variable, because the reason
# bumping the revision is a general solution for many problems is that it
# also resets the commit distance (which wouldn't happen if the revision was
# refactored to a separate variable).
#
# Build (fourth number - max 3 digits):
# - Automatically calculated as the number of commits since the last time any
# of the other three numbers changed (technically since the corresponding
# line changed in git).
#

IOS_PACKAGE_VERSION=12.5.1.$(IOS_COMMIT_DISTANCE)
MAC_PACKAGE_VERSION=5.5.1.$(MAC_COMMIT_DISTANCE)
12 changes: 12 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,19 @@ world: check-system

.PHONY: check-system
check-system:
@if [[ "x$(IOS_COMMIT_DISTANCE)" != "x$(MAC_COMMIT_DISTANCE)" ]]; then \
echo "$(COLOR_RED)*** The commit distance for Xamarin.iOS ($(IOS_COMMIT_DISTANCE)) and Xamarin.Mac ($(MAC_COMMIT_DISTANCE)) are different.$(COLOR_CLEAR)"; \
echo "$(COLOR_RED)*** To fix this problem, bump the revision (the third number) for both $(COLOR_GRAY)IOS_PACKAGE_NUMBER$(COLOR_RED) and $(COLOR_GRAY)MAC_PACKAGE_NUMBER$(COLOR_RED) in Make.versions.$(COLOR_CLEAR)"; \
echo "$(COLOR_RED)*** Once fixed, you need to commit the changes for them to pass this check.$(COLOR_CLEAR)"; \
exit 1; \
elif (( $(IOS_COMMIT_DISTANCE) > 999 || $(MAC_COMMIT_DISTANCE) > 999 )); then \
echo "$(COLOR_RED)*** The commit distance for Xamarin.iOS ($(IOS_COMMIT_DISTANCE)) and/or Xamarin.Mac ($(MAC_COMMIT_DISTANCE)) are > 999.$(COLOR_CLEAR)"; \
echo "$(COLOR_RED)*** To fix this problem, bump the revision (the third number) for both $(COLOR_GRAY)IOS_PACKAGE_NUMBER$(COLOR_RED) and $(COLOR_GRAY)MAC_PACKAGE_NUMBER$(COLOR_RED) in Make.versions.$(COLOR_CLEAR)"; \
echo "$(COLOR_RED)*** Once fixed, you need to commit the changes for them to pass this check.$(COLOR_CLEAR)"; \
exit 1; \
fi
@./system-dependencies.sh
@echo "Building Xamarin.iOS $(IOS_PACKAGE_VERSION) and Xamarin.Mac $(MAC_PACKAGE_VERSION)"

$(DIRECTORIES):
$(Q) mkdir -p $@
Expand Down
3 changes: 3 additions & 0 deletions Versions-ios.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<string>11.2</string>
<string>11.3</string>
<string>11.4</string>
<string>12.0</string>
</array>
<key>tvOS</key>
<array>
Expand All @@ -44,6 +45,7 @@
<string>11.2</string>
<string>11.3</string>
<string>11.4</string>
<string>12.0</string>
</array>
<key>watchOS</key>
<array>
Expand All @@ -58,6 +60,7 @@
<string>4.1</string>
<string>4.2</string>
<string>4.3</string>
<string>5.0</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
1 change: 1 addition & 0 deletions Versions-mac.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<string>10.11</string>
<string>10.12</string>
<string>10.13</string>
<string>10.14</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
Loading

1 comment on commit f77c434

@xamarin-release-manager
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build was (probably) aborted

🔥 Jenkins job (on internal Jenkins) failed in stage(s) 'Test run' 🔥 : hudson.AbortException: script returned exit code 2

Build succeeded
API Diff (from stable)
🔥 Failed to compare API and create generator diff 🔥
🔥 Test run failed 🔥

Test results

1 tests failed, 0 tests skipped, 224 tests passed.

Failed tests

  • link all/Mac/Debug: Failed (Test run failed.)

Please sign in to comment.