
 .. Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

 ..   http://www.apache.org/licenses/LICENSE-2.0

 .. Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.


Package apache-airflow-providers-microsoft-psrp
------------------------------------------------------

`PowerShell Remoting Protocol (PSRP)
<https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-psrp/>`__


This is detailed commit list of changes for versions provider package: ``microsoft.psrp``.
For high-level changelog, see :doc:`package information including changelog <index>`.



1.0.1
.....

Latest change: 2021-09-03

================================================================================================  ===========  ===============================================================
Commit                                                                                            Committed    Subject
================================================================================================  ===========  ===============================================================
`9c644194e <https://github.com/apache/airflow/commit/9c644194ed6bc6a3a065b72ea7cf89c02d1c5275>`_  2021-09-03   ``Fix unexpected bug in exiting hook context manager (#18014)``
================================================================================================  ===========  ===============================================================

1.0.0
.....

Latest change: 2021-08-27

================================================================================================  ===========  ============================================================
Commit                                                                                            Committed    Subject
================================================================================================  ===========  ============================================================
`41632e03b <https://github.com/apache/airflow/commit/41632e03b8caf71de308414c48e9cb211a083761>`_  2021-08-27   ``Fix provider.yaml errors due to exit(0) in test (#17858)``
`69d2ed65c <https://github.com/apache/airflow/commit/69d2ed65cb7c9384d309ae5e499d5798c2c3ac96>`_  2021-08-08   ``Add Microsoft PSRP provider (#17361)``
================================================================================================  ===========  ============================================================
