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

Merge milestones/M158 to releases/shipped #1515

Merged
merged 236 commits into from
Sep 13, 2019
Merged

Conversation

jeschu1
Copy link
Member

@jeschu1 jeschu1 commented Sep 9, 2019

Release notes

  • Allows dehydration of specific folders.
  • Fixes an issue on macOS where files with the executable mode bit set could fail to run if not hydrated before first run.
  • Includes Git 2.23, with new verbs switch and restore.
  • Various bug fixes and performance improvements.

List of PRs included

#1518 [Merge to M158] Call multi-pack-index with --no-progress
#1513 Sparse UI cleanup
#1498: Don't allow Executables to be Placeholder
#1506 from Mac installer preinstall failure
#1323 Dehydrate folders
#1508: diff: use csharp driver for better function headers in .cs files
#1499 from pmj/mac-projfs-offline-io-registration-no-kext-user-version-validation
#1507 Check the disposing flag in Dispose methods
#1466 from Better installer logs
#1486: Clean up Register/Unregister for OfflineIO
#1485: Mark panic strings as 'public' so they appear in Console
#1482 from pmj/mac-projfs-1479-1480-no-follow-symlinks
#1487: Use the full path to GVFS.Hooks executable in the hook configuration
#1483 from pmj/mac-projfs-shadowed-variable-bugfixes
#1412 from github/case-sensitive-repos
#1452: Correct Upgrade Messages for Mac
#1476 Mark MoveIndexFileFails as MacOnly because CmdRunner on Windows failing
#1473 Mac: Add mdworker_shared to the IsFileSystemCrawler block list
#1469 from Enabling Service verb Functional tests
#1389: Update Git to v2.23.0
#1467 Add a global setup class when using a --test= option
#1445: Check for new Panic Logs where PrjFSKextLogDaemon is started
#1289 from Actionable notifications
#1440: Add LogInfo / LogWarning messages to PrjFSLib
#1456 from Auto-unmount repos in pre-install
#1411 from github/backing-root-fixes
#1429 from pmj/mac-kext-182-block-offline-empty-file-access
#1428 from github/move-index-test
#1448 from github/use-dir-sep-char
#1450 Add information for when lock is release by process not owning the lock
#1446 Cleanup virtualizer tests
#1449 Don't log errors when MaintenanceSteps fail due to the repo being deleted
#1436: [Mac kext] Allow privileged system service 'amfid' to hydrate
#1337: [Mac Kext] Remove '/System/Volumes/Data' when only in path
#1408: Include panic logs for vfs in diagnose
#1431 Add lock around writes to SQLite database tables
#1409 from Halterer/SubDirectoryInfoObject
#1417: Update mac uninstall script to remove GVFS service directory
#1425: update NUnit dependencies
#1416 Mac: Fix and enable remaining dehydrate functional tests
#1421: Update Git, drop MIDX writes
#1208 from pmj/mac-kext-182-no-writes-on-offline-roots
#1280 from pmj/mac-kext-resize-roots
#1415: Update Git to include octopus merge bugfix
#1363: Handle corrupt objects on Mac
#1351 No longer set PATH for git process and remove use of gvfs hooks root
#1392 Mac: Add version information to kext and PrjFS logging daemon
#1308: Updating README.md
#1384: [Mac] Don't allow cloning or mounting on case sensitive volumes
#1399 Add SetupFixture for teardown to get the test results at the end
#1398 Mac: Don't download file sizes as part of OnEnumerateDirectory
#1394 Increasing precision of timestamps being logged
#1388: Proper error message for 'git gui' on Mac
#1393: Setup.iss: use {sys} variable when calling sc.exe
#1303: GVFS Health Feature

turbonaitis and others added 30 commits July 1, 2019 17:14
Now, that local cache path defaults to `$HOME/.gvfsCache`, there's no need to specify --local-cache-path explicitly.
Native notifications can now have actions associated with them.
When user clicks on the action button on a notification bubble,
VFSForGit will run a Command in response.
Example: Mount_Failure notification can specifiy the gvfs command
"gvfs mount <path>" as its associated action. Actionable
notifications also have an actionTitle, which get displayed as
text in a Button control on the Notification bubble.

Other details
- Commands are run using Terminal app.
- Terminal is launched using Applescript.
- Only UpgradeAvailable and Mount_Failure notifications are
actionable now.
- VFSForGitNotification class now confirms to NSCoding protocol.
  VFSForGitNotification object holds details of the notification
  including associated commands. It is archived and sent to the
  OS notification center. When user clicks the notification
  bubble, the archived VFSForGitNotification is retrieved from
  the native notification, its associated Command is read and
  executed.
Initial cut of Health Feature
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
…sc.exe

The [InnoSetup constants documentation](http://www.jrsoftware.org/ishelp/index.php?topic=consts) lists `{sys}` as the way to expand to what is typically `C:\Windows\System32`. This _should_ reduce issues with `PATH` modifications or system drive swaps.

I manually tested upgrade to see that these paths were expanded correctly.
The git process was launched using a PATH environment variable with the
gvfs hooks path to make sure that when a path in the repo was included in
the user's PATH environment variable that it would only search outside
the repo.  This was when the code was using git cat-file to hydrate files
and searching for gvfs hooks would cause it to hydrate files which would
cause it to search for hooks and it would be in a loop.

This is no longer the case, the code is using libgit2 and the hooks are not
called.  Since the gvfs hooks root was only used for setting the PATH for
the git process, all references to it can be removed.
- Add comments where needed
- Stop creating BlobSizeConnections in OnEnumerateDirectory
- Remove populateSizes parameter from GetProjectedItems
Currently the output for running functional tests put the service logs
and the run times for each of the tests at the end after the actual test
summary results. This makes finding the actual results of failures harder
to find since you have to scroll up an indeterminate amount to get to
the results.

This change will move the test run summary to the bottom of the output.
So you can go straight to the bottom to see any failures.
Increasing precision of timestamps being logged
…EnumerateDirectory

Mac: Don't download file sizes as part of OnEnumerateDirectory
…t results at the end

Add SetupFixture for teardown to get the test results at the end
…se sensitive volumes

[Mac] Don't allow cloning or mounting on case sensitive volumes
Now, that local cache path defaults to $HOME/.gvfsCache, there's no need to specify --local-cache-path explicitly.
…UNDLE_VERSION. Additionally, make BUNDLE_VERSION Major.Minor
…FS logging daemon

Mac: Add version information to kext and PrjFS logging daemon
…e use of gvfs hooks root

No longer set PATH for git process and remove use of gvfs hooks root
Some organizational improvements to the code, since the SubDirectoryInfo
object has named fields. Sub directory list now shows the fraction
of files which are hydrated, sorting remains by number of hydrated files
Added unit tests for the newly available information, the total number
of files per sub directory.
Kevin Willford and others added 11 commits September 4, 2019 15:32
…no-kext-user-version-validation

Mac ProjFS: Don't perform user/kernel version validation for offline I/O
… headers in .cs files

diff: use csharp driver for better function headers in .cs files
-  This fixes the failure when a Phython Executable is called before hydration.
Don't allow Executables to be Placeholders
@wilbaker
Copy link
Member

@jrbriggs @derrickstolee @jeschu1 should we hold this release for microsoft/git#186 (and #1455)?

@wilbaker
Copy link
Member

@jeschu1 I noticed that the changes included in this release (e.g. #1513) are tagged as M159, but this branch is named M158. Is this PR for the M159 release?

I'm wondering if I incorrectly tagged #1492 as M159 (I merged it into master after milestones/M158 was created).

@jeschu1
Copy link
Member Author

jeschu1 commented Sep 10, 2019

@wilbaker I tagged this as 158 since that's our current sprint. I believe we were hoping for an out of band release to get the hydration fix out quicker. @jrbriggs, let me know if I should re-push as 159.

@wilbaker
Copy link
Member

I tagged this as 158 since that's our current sprint. I believe we were hoping for an out of band release to get the hydration fix out quicker.

@jeschu1 @jrbriggs is this going to be a Mac-only release?

@jrbriggs
Copy link
Member

@wilbaker @jeschu1 @alameenshah no the release should be both platforms.

@wilbaker
Copy link
Member

@wilbaker @jeschu1 @alameenshah no the release should be both platforms.

@jrbriggs ok thanks!

Any objects to porting #1517 to this branch (it has a fix for the background MIDX jobs causing out of memory exceptions)?

I tagged this as 158 since that's our current sprint.

@jeschu1 how should PRs be tagged that are included in this release (or alternatively, how should PRs be tagged that will be in the next release)?

@microsoft microsoft deleted a comment from azure-pipelines bot Sep 10, 2019
@microsoft microsoft deleted a comment from azure-pipelines bot Sep 10, 2019
@wilbaker
Copy link
Member

Any objects to porting #1517 to this branch (it has a fix for the background MIDX jobs causing out of memory exceptions)?

I went ahead and created #1518 to merge in the fix for this release. @derrickstolee and @jeschu1 have signed off and I'll merge it in as soon as the tests complete.

…-no-progress

[Merge to M158] Call multi-pack-index with --no-progress
@alameenshah
Copy link
Contributor

@derrickstolee
Copy link
Contributor

Please update description with list of PRs included, and possibly with the list of PRs in microsoft/git that were included.

Copy link
Member

@wilbaker wilbaker left a comment

Choose a reason for hiding this comment

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

@jeschu1 do the large repo perf test numbers look good for this release?

@jeschu1
Copy link
Member Author

jeschu1 commented Sep 11, 2019

@wilbaker I believe @alameenshah is working on the perf number comparison

Copy link
Member

@kewillford kewillford left a comment

Choose a reason for hiding this comment

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

Looks good to me.

Copy link
Member

@jrbriggs jrbriggs left a comment

Choose a reason for hiding this comment

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

Approved once we get release notes in the PR description.

@alameenshah alameenshah marked this pull request as ready for review September 13, 2019 16:41
@alameenshah alameenshah merged commit 1d1d29f into releases/shipped Sep 13, 2019
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

Successfully merging this pull request may close these issues.