iOS9 + Swift 2.0 error

Hey,
I was using DHCollectionTableView in my iOS8 (Storyboard) project.
Since I upgraded to iOS9 + Swift 2.0 following error appears (iOS8 is still working!):
*** Assertion failure in -[xxx.ForecastIndexedCollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:applyAttributes:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3505.16/UICollectionView.m:1519 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UICollectionView dataSource is not set'
Has anyone any ideas or suggestions?
Help would be much appreciated :)

for so many reasons,I have not yet upgrade to iOS9,I'll be fix it, sorry

Found a temporary workaround:
As I expected iOS9 wants data source and delegate set at initialisation.
class DHCollectionTableViewCell: UITableViewCell, UICollectionViewDataSource, UICollectionViewDelegate { }

override func awakeFromNib() {
     super.awakeFromNib()

     self.collectionView.delegate = self
     self.collectionView.dataSource = self
}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
     return 0
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
     let cell = UICollectionViewCell()
     return cell
}

Don't know the impact on memory consumption but for now I'm happy. Hope this helps someone :)

it works


Allow Resolve Studio to access USB devices (read USB licence key)

Current main branch does not allow Resolve Studio to see USB licence keys.
Allow access to all devices due to current limitations of flatpak not allowing access to USB devices specifically (see https://github.com/flatpak/xdg-desktop-portal/pull/1238 )

i would prefer not want to add --device=all just for single devices like usb, because it creates a massive hole. I think users can use flatseal to add --device=all if/when they need it.  it's the same problem for rocm-flatpak which needs /dev/kfd.


copy button not showing in code block

copy button shows in the readme file
( when visiting the repo or other places )
but
not shows in Github pages
I am talking about in the code block
in this code block
some code is written
something like this

try to hover on the upper right side of this block also
it will show here also but not on github pages

copy button shows in the readme file ( when visiting the repo or other places )
but
not shows in Github pages
I am talking about in the code block
in this code block
some code is written
something like this

try to hover on the upper right side of this block also
it will show here also but not on github pages

in not work if we change to the theme
to pages-themes/cayman
so add the copy icon


Fix typos in doc/configurations.rst

I noticed some typos about revealjs_script_plugins.
Please merge this.

Thank you for feedback and fix!


Make the default date format configurable.

Hey,
Currenty you can configure a date format per graph, this patch allows the date format to be set at a site level.
Cheers,
Russell

refs #188

Replaced by #1633.


fix typo fix in dynamic-partition page

Proposed changes
typo fix in dynamic-partition page
ref #28511

run buildall


when first call RenderBox->performLayout  constraints is BoxConstraints(w=0.0, h=0.0) in profile mode but not as debug mode

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
flutter run --profile
flutter run
Expected results
same as debug mode(BoxConstraints(w=X, h=X) )
Actual results
same as debug mode(BoxConstraints(w=X, h=X) )
Code sample
Code sample
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const Home(),
    );
  }
}

class Home extends StatelessWidget {
  const Home({super.key});

  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: SafeArea(
        child: MCRO(),
      ),
    );
  }

}

class MCRO extends MultiChildRenderObjectWidget{
  const MCRO({
    super.key,
  });

  @override
  RenderObject createRenderObject(BuildContext context) => RenderMCRO();

}

class RenderMCROParentData extends ContainerBoxParentData<RenderBox> with ContainerParentDataMixin<RenderBox> {}

class RenderMCRO extends RenderBox with
    ContainerRenderObjectMixin<RenderBox, RenderMCROParentData>{
  RenderMCRO();

  @override
  void performLayout() {
    print(constraints);
    size = constraints.biggest;
  }

  @override
  void paint(PaintingContext context, Offset offset) {
  }

  @override
  void setupParentData(covariant RenderObject child) {
    child.parentData = RenderMCROParentData();
  }

}

https://dartpad.dev/?id=98a4de95dc949aae698f1f9ddb08f97b
Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
PS E:\source\flutter\demo> flutter run --profile
Connected devices:
SM G9350 (mobile)                     • efab64e2      • android-arm64 • Android 8.0.0 (API 26)
Android SDK built for x86 64 (mobile) • emulator-5554 • android-x64   • Android 10 (API 29) (emulator)
[1]: SM G9350 (efab64e2)
[2]: Android SDK built for x86 64 (emulator-5554)
Please choose one (or "q" to quit): 1
Launching lib\main.dart on SM G9350 in profile mode...
Running Gradle task 'assembleProfile'...                           29.1s
√  Built build\app\outputs\flutter-apk\app-profile.apk (12.9MB).
Installing build\app\outputs\flutter-apk\app-profile.apk...         5.7s
I/flutter (27907): BoxConstraints(w=0.0, h=0.0)                 <------------------
I/flutter (27907): BoxConstraints(0.0<=w<=360.0, 0.0<=h<=616.0) <-------------------

Flutter run key commands.
h List all available interactive commands.
c Clear the screen
q Quit (terminate the application on the device).
A Dart VM Service on SM G9350 is available at: http://<IP_ADDRESS>:58665/ptizW3XNsLY=/
The Flutter DevTools debugger and profiler on SM G9350 is available at:
http://<IP_ADDRESS>:9104?uri=http://<IP_ADDRESS>:58665/ptizW3XNsLY=/
I/zygote64(27907): Debugger is no longer active
V/InputMethodManager(27907): Starting input: tba=android.view.inputmethod.EditorInfo@a97fe5d nm : com.example.demo ic=null
I/InputMethodManager(27907): startInputInner - mService.startInputOrWindowGainedFocus
D/SurfaceView(27907): BG show() Surface(name=Background for - SurfaceView - com.example.demo/com.example
.demo.MainActivity@e0cd50f@0) io.flutter.embedding.android.FlutterSurfaceView{e0cd50f V.E...... ........ 0,0-720,1280}
D/SurfaceView(27907): surfaceDestroyed 1 io.flutter.embedding.android.FlutterSurfaceView{e0cd50f V.E...... ........ 0,0-720,1280}
D/SurfaceView(27907): BG hide() Surface(name=Background for - SurfaceView - com.example.demo/com.example
.demo.MainActivity@e0cd50f@0) true false io.flutter.embedding.android.FlutterSurfaceView{e0cd50f G.E...... ......I. 0,0-720,1280}
D/OpenGLRenderer(27907): eglDestroySurface = 0x7cecddba10
D/ViewRootImpl@716128[MainActivity](27907): Relayout returned: old=[0,0][720,1280] new=[0,0][720,1280] result=0x5 surface={valid=false 0} changed=true
D/ViewRootImpl@716128[MainActivity](27907): MSG_WINDOW_FOCUS_CHANGED 0

Application finished.

--------------------------------------------------------------------------

PS E:\source\flutter\demo> flutter run
Connected devices:
SM G9350 (mobile)                     • efab64e2      • android-arm64 • Android 8.0.0 (API 26)
Android SDK built for x86 64 (mobile) • emulator-5554 • android-x64   • Android 10 (API 29) (emulator)
[1]: SM G9350 (efab64e2)
[2]: Android SDK built for x86 64 (emulator-5554)
Please choose one (or "q" to quit): 1
Launching lib\main.dart on SM G9350 in debug mode...
Running Gradle task 'assembleDebug'...                             24.2s
√  Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app-debug.apk...          12.2s
Syncing files to device SM G9350...                                397ms

Flutter run key commands.
r Hot reload.
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

A Dart VM Service on SM G9350 is available at: http://<IP_ADDRESS>:60383/F4fMwSXrjKs=/
I/flutter (29315): BoxConstraints(0.0<=w<=360.0, 0.0<=h<=616.0)   <------------------------------------
The Flutter DevTools debugger and profiler on SM G9350 is available at:
http://<IP_ADDRESS>:9104?uri=http://<IP_ADDRESS>:60383/F4fMwSXrjKs=/
D/libGLESv2(29315): STS_GLApi : DTS, ODTC are not allowed for Package : com.example.demo
I/vndksupport(29315): sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
I/zygote64(29315): Debugger is no longer active

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.16.3, on Microsoft Windows [Version 10.0.22631.2715], locale en-US)
    • Flutter version 3.16.3 on channel stable at E:\source\runtime\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b0366e0a3f (3 days ago), 2023-12-05 19:46:39 -0800
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at E:\source\runtime\Android\Sdk
    • Platform android-34, build-tools 33.0.2
    • ANDROID_HOME = E:\source\runtime\Android\Sdk
    • Java binary at: E:\application\android-studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[!] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.1)
    • Visual Studio at E:\application\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.8.34316.72
    • Windows 10 SDK version 10.0.22621.0
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the
      "Desktop development with C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[√] Android Studio (version 2022.3)
    • Android Studio at E:\application\android-studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] IntelliJ IDEA Ultimate Edition (version 2023.3)
    • IntelliJ at E:\application\ideaIU
    • Flutter plugin version 76.3.4
    • Dart plugin version 233.11799.172

[√] Proxy Configuration
    • NO_PROXY contains localhost
    • NO_PROXY contains ::1
    • NO_PROXY contains <IP_ADDRESS>

[√] Connected device (5 available)
    • SM G9350 (mobile)                     • efab64e2      • android-arm64  • Android 8.0.0 (API 26)
    • Android SDK built for x86 64 (mobile) • emulator-5554 • android-x64    • Android 10 (API 29)
      (emulator)
    • Windows (desktop)                     • windows       • windows-x64    • Microsoft Windows
      [Version 10.0.22631.2715]
    • Chrome (web)                          • chrome        • web-javascript • Google Chrome
      120.0.6099.71
    • Edge (web)                            • edge          • web-javascript • Microsoft Edge
      120.0.2210.61

[√] Network resources
    • All expected network resources are available.

Thanks for filing a separate issue. I checked this issue and see it seems to only happen on Android platform. On other platforms (macOS, iOS, Windows), it outputs the same BoxConstraints in both debug and profile modes.
Android

Debug mode:

I/flutter ( 3100): BoxConstraints(0.0<=w<=360.0, 0.0<=h<=717.7)

Profile mode:

I/flutter ( 3100): BoxConstraints(w=0.0, h=0.0)
I/flutter ( 3100): BoxConstraints(0.0<=w<=360.0, 0.0<=h<=717.7)

macOS/Windows/iOS

Debug/Profile mode:

flutter: BoxConstraints(0.0<=w<=800.0, 0.0<=h<=600.0) // macOS

flutter: BoxConstraints(0.0<=w<=1264.0, 0.0<=h<=681.0) // windows

flutter: BoxConstraints(0.0<=w<=375.0, 0.0<=h<=647.0) // iOS

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.16.3, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.16.3 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b0366e0a3f (23 hours ago), 2023-12-05 19:46:39 -0800
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version unknown)
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086)

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe Patch 3.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.78.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 119.0.6045.199

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.18.0-7.0.pre.58, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.18.0-7.0.pre.58 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c0a481e31d (4 hours ago), 2023-12-10 17:46:24 -0500
    • Engine revision bc0222b64c
    • Dart version 3.3.0 (build 3.3.0-214.0.dev)
    • DevTools version 2.30.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version unknown)
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086)

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe Patch 3.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.78.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 120.0.6099.71

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 2 categories.

Hi @ganluo960214, I see there was a similar issue at https://github.com/flutter/flutter/issues/106858. Please check https://github.com/flutter/flutter/issues/106858#issuecomment-1517733501 and https://github.com/flutter/flutter/issues/106858#issuecomment-1734188331 for more information.
Closing this as a duplicate of https://github.com/flutter/flutter/issues/106858.


Add documentation on 'validate_model_deletion'

Any idea why it seems that inventree-python CI tests are failing on all jobs lately?

Any idea why it seems that inventree-python CI tests are failing on all jobs lately?

Yep I will fix that tonight.


Add support for CAE

Use Azure Identity crew's CAE onboarding page for guidance in the OneNote.

Blocked on https://github.com/AzureAD/microsoft-authentication-library-for-go/issues/263

related #14284

Additionally to passing the claim, azure identity should set the capabilities in places like these (WithClientCapabilities(new [] {"cp1"})) source.
It seems that there's no way today for somebody using azure identity to set that capability.

see the equivalent for dotnet https://github.com/Azure/azure-sdk-for-net/blob/c7f68fb15a2dc8dace6e61f78b5b0f7425ec2d4c/sdk/identity/Azure.Identity/src/MsalPublicClient.cs#L46

This support is available now: with azidentity v1.3.0-beta.3 and azcore v1.4.0-beta.1, credentials default to sending CP1 and ARM clients internally handle claims challenges.


Add a new API jax.lax.split.

This API does not add expressive power, since it is already possible to split arrays by repeated slicing. Its purpose is to be a primitive that is the transpose of lax.concatenate, so that primitives like jnp.unstack can be differentiatied more efficiently.
Before:
In [1]: import jax.numpy as jnp, jax

In [2]: x = jnp.ones((3,))

In [3]: jax.jit(jax.linear_transpose(lambda xs: jnp.unstack(xs), jnp.ones((5, 3)))).trace((x,)*5).jaxpr
Out[3]:
{ lambda ; a:f32[3] b:f32[3] c:f32[3] d:f32[3] e:f32[3]. let
    f:f32[5,3] = pjit[
      name=unstack
      jaxpr={ lambda ; g:f32[3] h:f32[3] i:f32[3] j:f32[3] k:f32[3]. let
          l:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] k
          m:f32[5,3] = pad[padding_config=((4, 0, 0), (0, 0, 0))] l 0.0
          n:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] j
          o:f32[5,3] = pad[padding_config=((3, 1, 0), (0, 0, 0))] n 0.0
          p:f32[5,3] = add_any m o
          q:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] i
          r:f32[5,3] = pad[padding_config=((2, 2, 0), (0, 0, 0))] q 0.0
          s:f32[5,3] = add_any p r
          t:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] h
          u:f32[5,3] = pad[padding_config=((1, 3, 0), (0, 0, 0))] t 0.0
          v:f32[5,3] = add_any s u
          w:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] g
          x:f32[5,3] = pad[padding_config=((0, 4, 0), (0, 0, 0))] w 0.0
          y:f32[5,3] = add_any v x
        in (y,) }
    ] a b c d e
  in (f,) }

Note in particular the pad calls, which are the transpose of slice. Transposing the split has the effect of forming many dense intermediate cotangents.
After:
In [1]: import jax.numpy as jnp, jax

In [2]: x = jnp.ones((3,))

In [3]: jax.jit(jax.linear_transpose(lambda xs: jnp.unstack(xs), jnp.ones((5, 3)))).trace((x,)*5).jaxpr
Out[3]:
{ lambda ; a:f32[3] b:f32[3] c:f32[3] d:f32[3] e:f32[3]. let
    f:f32[5,3] = pjit[
      name=unstack
      jaxpr={ lambda ; g:f32[3] h:f32[3] i:f32[3] j:f32[3] k:f32[3]. let
          l:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] k
          m:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] j
          n:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] i
          o:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] h
          p:f32[1,3] = broadcast_in_dim[
            broadcast_dimensions=(1,)
            shape=(1, 3)
            sharding=None
          ] g
          q:f32[5,3] = concatenate[dimension=0] p o n m l
        in (q,) }
    ] a b c d e
  in (f,) }

I wonder if this could be a route to improving split compile times? cf. #9445

I wonder if this could be a route to improving split compile times? cf. #9445

I doubt it. It will improve compile times if you differentiate the split, perhaps, but it won't change the primal performance since it will expand to much the same HLO.


Add Full Validate Profile Method

Describe your changes
Issue ticket number and link
Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I have made corresponding changes to the documentation
[x] If OCPP 2.0.1: I have updated the OCPP 2.0.1 status document
[x] I read the contribution documentation and made sure that my changes meet its requirements

Re-ordered the commit history to make things make a little more sense chronologically. Should be good to go now.


Cop ideas from other projects

I came across several RuboCop extension gems that may have some useful cops to add to the RuboCop core project. This may also shed more light on what other people see as valuable cops.
https://gitlab.com/gitlab-org/rubocop-gitlab-security
https://github.com/puppetlabs/rubocop-i18n
https://github.com/github/rubocop-github
https://github.com/blueapron/rubocop-blueapron
https://github.com/airbnb/ruby/tree/master/rubocop-airbnb
https://github.com/covermymeds/rubocop-thread_safety
There are also a few gems that add additional formatters that we could consider adding.
https://github.com/eitoball/rubocop-checkstyle_formatter
https://github.com/mikian/rubocop-junit-formatter
I haven't played around with 3rd party formatters, but it seems like we could improve support for them, rubocop --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter. If we don't currently have a way to support 3rd party formatters in the .rubocop.yml, it looks like it could be valuable to add it.

I haven't played around with 3rd party formatters, but it seems like we could improve support for them,

Yes please! I'm working on a RuboCop extension to analyse SketchUp Ruby Extensions - and for that wanted a specialised formatter for this purpose. I'm currently resorting to some (kludgy) monkey-patching: https://github.com/SketchUp/rubocop-sketchup/blob/master/lib/rubocop-sketchup.rb#L22
I'd love for an API for this.
Similarly, the extension have some "global" options which I'd like to be able to set via command line (for automation purposes) - saving me from having to write temporary yml config files. (https://github.com/SketchUp/rubocop-sketchup/blob/master/manual/configuration.md)
Another thing that would be great is department excludes. (Logged as #5678) I got some custom rules for rubocop-sketchup which I based on rubocop-rspec. Got a work ticket logged for myself to come up with a PR proposal. (Thought I'd just mention it in the context of reviewing what RuboCop extensions are doing.)

@rrosenblum Maybe ask those projects' maintainers (by submitting an issue first) if they'd like to contribute those cops to the main repo or to the corresponding extensions under rubocop-hq organisation?


Meshcat animation playback broken due to coupled joints

I am running the robot-log-visualizer on some data recorded in simulation with the ergoCub robot.
The data is there - as I can see it from the plots - however the robot animation inside the Meshcat plugin is not moving.
While looking at the output inside the terminal I noticed the following:
[ERROR] Model :: getJointIndex : jointName l_thumb_oc not found in the model.
[ERROR] SubModelDecomposition::splitModelAlongJoints error :  requested to split the model along joint l_thumb_oc but no joint with that is in the model.
[ERROR] createReducedModel error :  error in splitting models across joints.

Not sure if that is happening at the Meshcat level or somewhere else, e.g. when evaluating the pose of the meshes using the forward kinematics.
Nonetheless, the error makes sense as the joint l_thumb_oc, as many others in ergoCubSN000 and ergoCubSN001, is just the name of a quantity that the user can control via YARP causing the motion of two distinct physical joints, namely l_thumb_prox and l_thumb_dist. Indeed, these are also the name of such joints inside the URDF, as can be seen here and here.
The solution to the above problem is probably connected to https://github.com/robotology/yarp/pull/3026, whose implementation has just kicked off. Meanwhile, do you think it makes sense to provide something like a workaround?
Thank you
cc @GiulioRomualdi

Hi @xEnVrE. I'm pretty happy you also use the visualizer ;) The problem here is related to iDynTree which cannot find the joint of the model. 😢
A possible solution is to load only the joints that can be actually found in the urdf model. Still, it is not clear to me how it can be done since we do not know the joints in advance

It is a bit convoluted as we would accept to lose the animation of the joints for which there is a missing counterpart in the URDF while still showing all the others for which the joint name exists in the URDF. At the moment, instead, the tool stops working for all of them, of course.
Do you think that including an optional list of joints to be excluded, to be populated by the user, is too much?

Hi @xEnVrE, thanks for #70. If you load a dataset with recorded coupled joints, you should now be able to see the robot animation move correctly. Since we're not storing the joint coupling law, we've decided to only move the non-underactuated joints.

Thanks @GiulioRomualdi.
cc @PasMarra


Target Lists

Geir Sletten and Ole Martin Mevassvik, Evaluation of C2SIM for use in Army Course of Action simulation, 22 February 2022, p 6
There is no direct way of grouping candidate targets in C2SIM as target lists, except for creating an overlay (target is not a class concept in C2SIM).

I think a list is always a kind of collectiveEntity. Maybe we should rename CollectiveEntity to CollectiveActorEntity to comprise MilitaryOrganization etc and create a CollectiveEntity as subclass of Entity.
A target in a Task is described as "hasAffectedEntity min 0 UUIDBase" restriction. However, we could create "hasAffectedEntity" as object property restriction pointing to an Entity or CollectiveEntity (as direct subclass of Entity).

I would like to propose:

add AffectedEntity or TargetEntity to taxonomy as subclass of Entity
allow subclasses to have two (or more) superclasses
2.1) CollectiveEntity and PhysicalEntity as subclass of both ActorEntity and Affected/TargetEntity
2.2) work on transformation problem
transform "hasAffectedEntity"-property to and use as object property

Overlay is defined by having the restriction "hasEntityReference min 1 UUIDBase". "hasEntityReference" (The reference is to an instance of an Entity) contradicts the definition of AbstractObject...


Error related to debug mode?

I'm getting this error when I try to use hot reloading:
Uncaught TypeError: can't access property "$", state is undefined
    $elm$browser$Debugger$Main$getLatestModel cart-widget.elm.js:19763
    wrapSubs cart-widget.elm.js:19778
    F2 cart-widget.elm.js:2872
    _Platform_initialize cart-widget.elm.js:4776
    _Platform_worker cart-widget.elm.js:4722
    F4 cart-widget.elm.js:2881
    init cart-widget.elm.js:5402
    initApp cart-widget.coffee:136
    <anonymous> cart-widget.coffee:465
    <anonymous> cart-widget.js.js:35501
    <anonymous> cart-widget.js.js:35503

I can't figure out what this error is telling me.
The compiled files are loaded one after another in the browser, so I don't think it is an execution order issue.
<script src="/js/cart-widget.elm.js"></script>
<script src="/js/cart-widget.js.js"></script>

I had it working before, but I tried enabling the debug mode; it failed and figured I'd work on that later once I got everything else working. I'm not sure if that is related to this issue.
I cant really see a way to "turn debug mode off" though. Will restarting elm-watch do it?
Some details that may be relevant:
cart-widget.coffee and cart-widget.js.js are the same file, webpack has compiled it and the original name is read from the source map in the backtrace. cart-widget.elm.js is the compiled Elm code.
I have a "backend" worker that maintains one state for the entire page and a few "frontend" apps that are just views. They send and receive messages through ports and the cart-widget.coffee is responsible for creating the different Elm apps and connecting them to each other.
Everything is served from docker and a Ruby on Rails app, but that should be irrelevant; the actual files are essentially served by a static file server, and the app doesn't get far enough to start failing http requests.

Would you be able to share the broken cart-widget.elm.js with me somehow?

Yes, on Monday, when I get back to the computer.
And no postprocess script. I was thinking of adding one to see if that helped work around this bug, but never got that far.
The only thing I can think of that's vaguely unique is having many instances of the same app running, but that's never been a problem before. Besides, that's not the app that's crashing; it's a Platform.worker. It doesn't have any UI.
I'm planning on moving it to a web worker, mostly to handle multiple tabs.

This is the elm-watch.json.
{
  "targets": {
    "CartWidget": {
      "inputs": ["elm/CartWidget.elm", "elm/CartViews.elm"],
      "output": "public/js/cart-widget.elm.js"
    },
    "AdminOrder": {
      "inputs": ["elm/AdminOrder.elm"],
      "output": "public/js/admin-order.js"
    },
    "BookingWidget": {
      "inputs": ["elm/BookingWidget.elm"],
      "output": "public/js/booking-widget.elm.js"
    }
  },
  "port": 44331
}

Never got around to trying the other targets.

Which of the .elm files contains the Platform.worker?
Not that you are not even supposed to be able to switch to debug mode for workers:

Interesting. The way I usually build, the way I want to replace, is an npm script:
"elm-live elm/CartWidget.elm elm/CartViews.elm --no-server -- --debug --output=public/js/cart-widget.elm.js",

I wonder why that's never been a problem before.

Because you weren’t using elm-watch :) elm-watch has its own hot reloading implementation, and I introduced a bug when programs that do and do not support the debugger are bundled in the same output.

I got back and deleted the elm-stuff directoty, and it started working again. :)
I have the crashing file saved, but I don't suppose there is much point in posting it.
The tool itself looks great. Do one thing, and do it well. I'll configure the rest to work with my set up. :+1:

Great, I’ll try to fix the bug soon!

Fix released in v1.1.1.


Saving a file is hanging indefinitely

Describe the bug
Hi, since today this extension has been causing the save file action to hang indefinitely.
I deactivated all my VSCode extensions and this one seems to cause the issue. I don't have any more insight but I'll be happy to send more if someone provides guidance.
I use the v0.5.2 and also tried the v0.5.1 which causes the same issue.
Here's my VSCode info:
Version: 1.84.2
Commit: 1a5daa3a0231a0fbba4f14db7ec463cf99d7768e
Date: 2023-11-09T10:52:57.054Z (1 wk ago)
Electron: 25.9.2
ElectronBuildId: 24603566
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 21.5.0
Expected behavior
Saving a file should be instant.
Screenshots

Having the same issue. Used the VS Code extension bisect tool and in fact it seems to be this extension.

To me it seems to happen when working with code where the TS errors are super long.  I've solved it for now with setting "noErrorTruncation": false,. It's not ideal but it seems to work.

It is weird because the extension does not interfere saving of files,
Does someone see some behavior that could cause that? maybe something that we're not doing correctly in the extension?
I also failed to reproduce it, so it would be great if someone could help with that.

I attempted to reproduce by checking out the typescript and vuejs/core repositories. As both are pretty large and vuejs/core is a monorepo. I cannot reproduce any problems with the extensions. Running the extension host profile does not show any performance issues with the extension.
So far it seems this issue and #102 seem to use a macbook, I use a windows machine. Doubt its related but if more people raise issues it could be worth asking.

To me it seems to happen when working with code where the TS errors are super long. I've solved it for now with setting "noErrorTruncation": false,. It's not ideal but it seems to work.

This seems interesting to me. Maybe it has to do with truncated errors? Something like a recursion with regular expressions? It all seems to be handled here:
https://github.com/yoavbls/pretty-ts-errors/blob/2531440478077fd3f3335e3e3d1b92c9679eb1bc/src/format/formatTypeBlock.ts#L54-L76
I don't see any reason for the extension to stall in a seemingly infinite loop.

Just an FYI, I run Windows, Linux, and macOS and it happens on all three for me, so it doesn't seem to be platform specific. I see this issue most often when moving a typescript file which triggers vscode to update the import paths in any file referencing the moved file.

@ChristopherHaws Thanks for the addition, that is helpful. I'm gonna see if I can reproduce it by moving a file.


crypto: use canonical ed25519 signature in all domains except HARE

domains were recently added and specified here https://github.com/spacemeshos/go-spacemesh/blob/develop/signing/signer.go#L19-L23
all domains except hare will avoid public key extraction and can use canonical ed25519 (both curve-voi and stdlib are good). my preference is towards curve-voi for performance, and stricter verification. additionally we may use batch verification in the future during sync.
BEACON
ProposalMessage includes NodeID. FirstVotingMessage and FollowingVotingMessage have to be extended with PublicKey.
ATX
Initial ATX will have to include public key in the body of atx, to guarantee that initial atx is unique (not sure if this is necessary, if we are using strict signature). Public key can be always found by following the chain of references.
But in order to enable validation without downloading full chain of atxs, public key can be also attached to every message.
BALLOT
Similarly to ATXs, ballot can recover public key by following chain of references. However we would like to enable more efficient validation as well, so that signature can be validated before doing any disk reads or requests from peers.
POET
Public key needs to be sent as a part of the message.
Malfeasance proofs
It is not a separate domain, but the proofs will have to be extended with public key as well.
Summary & Changes
With several exceptions (hare, and messages that include only output from vrf) we can encode messages that are sent over the wire using next pattern:
message + signature + public key
it is equivalent to the next golang type
type SignedMessage[T scale.Type] struct {
     Message  T
     Signature [64]byte
     PublicKey [32]byte
}

regarding ATX

But in order to enable validation without downloading full chain of atxs, public key can be also attached to every message.

with the prev_atx field, the public key can be looked up in database.

with the prev_atx field, the public key can be looked up in database.

it can be done both with atxs and ballots (if we preserve reference to atx id at least for reference ballot). but i think that it will be better to gossip public key together with the message. in order to validate signature as a first step in the validation pipeline


Problem With Version 3.0 on iOS 10

Is anyone else having any problems on devices with iOS 10? Everyone on my team downloaded the app via the app store onto their iOS 10 devices and none of the networking calls are going through (can't pull or send any data). Everything is working perfectly fine on the simulator running iOS 9.

i have the same issue. only few network calls are responded.

@muzammilpeer Check the logic in your app. The headers we were using were stored locally using Keychain-Swift, and apparently they were removed after installing iOS 10. I am not getting any more errors now after logging in again.

Thanks for the confirmation @michael-mckenna. I'm going to close this issue out.
Cheers. 🍻


Initial Implementation

@immuta/developers @immuta/devops
Need sanity review of the initial implementation. I know further features/documentation/tests needed to be added to the code. Currently this can be utilized to create a CA and generate certificates against as well as remove certs or an entire CA.

:+1:

:+1:


Workflow Output Parameters and Artifacts don't work when using Custom Docker Images

Checklist

[x] Double-checked my configuration.
[x] Tested using the latest version.
[x] Used the Emissary executor.

Summary
What happened/what you expected to happen?
I'm using a standard Argo quickstart setup to run some workflows. When executing a workflow that defines output parameters or artifacts, using a custom Docker image based on python:3.9.12-bullseye the workflow fails:
Error (exit code 1): open /var/run/argo/outputs/artifacts/tmp/job-stdout.txt.tgz: no such file or directory

When running the artifact-passing.yaml example workflow everything works fine.
What version are you running?
v3.3.1
Diagnostics
Paste the smallest workflow that reproduces the bug. We must be able to run the workflow.
    - name: get-job-stdout
      inputs:
        parameters:
          - name: awx_token
          - name: awx_host
          - name: job
      container:
        image: awxkit:1.0
        command: [awx]
        args:
          [
            jobs,
            stdout,
            "{{inputs.parameters.job}}",
            "| tee {{outputs.artifacts.stdout}};",
            "echo {{outputs.artifacts.stdout}};",
            "cat {{outputs.artifacts.stdout}}",
          ]
        env:
          - name: TOWER_HOST
            value: "{{inputs.parameters.awx_host}}"
          - name: TOWER_OAUTH_TOKEN
            value: "{{inputs.parameters.awx_token}}"
      outputs:
        artifacts:
          - name: stdout
            path: /tmp/job/stdout.txt

# Logs from the workflow controller:
kubectl logs -n argo deploy/workflow-controller | grep ${workflow}
time="2022-04-27T12:01:19.238Z" level=info msg="Workflow step group node awx-job-run-97g47-1418128833 not yet completed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:19.238Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:19.238Z" level=info msg=reconcileAgentPod namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:19.244Z" level=info msg="Update workflows 200"
time="2022-04-27T12:01:19.245Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=35951 workflow=awx-job-run-97g47
time="2022-04-27T12:01:19.247Z" level=info msg="Create events 201"
time="2022-04-27T12:01:19.249Z" level=info msg="Create events 201"
time="2022-04-27T12:01:19.251Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/awx-job-run-97g47-606952326/labelPodCompleted
time="2022-04-27T12:01:19.252Z" level=info msg="Create events 201"
time="2022-04-27T12:01:19.253Z" level=info msg="Create events 201"
time="2022-04-27T12:01:19.256Z" level=info msg="Patch pods 200"
time="2022-04-27T12:01:22.465Z" level=info msg="Get leases 200"
time="2022-04-27T12:01:22.468Z" level=info msg="Update leases 200"
time="2022-04-27T12:01:27.473Z" level=info msg="Get leases 200"
time="2022-04-27T12:01:27.477Z" level=info msg="Update leases 200"
time="2022-04-27T12:01:29.240Z" level=info msg="Processing workflow" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.241Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=4 workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.241Z" level=info msg="task-result changed" namespace=argo nodeID=awx-job-run-97g47-2315868407 workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.241Z" level=info msg="node changed" namespace=argo new.message="Error (exit code 1): open /var/run/argo/outputs/artifacts/tmp/job-stdout.txt.tgz: no such file or directory" new.phase=Error new.progress=0/1 nodeID=awx-job-run-97g47-2315868407 old.message= old.phase=Pending old.progress=0/1 workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.243Z" level=info msg="SG Outbound nodes of awx-job-run-97g47-793822161 are [awx-job-run-97g47-793822161]" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.243Z" level=info msg="SG Outbound nodes of awx-job-run-97g47-650702330 are [awx-job-run-97g47-650702330]" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.243Z" level=info msg="SG Outbound nodes of awx-job-run-97g47-606952326 are [awx-job-run-97g47-606952326]" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.244Z" level=info msg="Step group node awx-job-run-97g47-1418128833 deemed failed: child 'awx-job-run-97g47-2315868407' failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.244Z" level=info msg="node awx-job-run-97g47-1418128833 phase Running -> Failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.244Z" level=info msg="node awx-job-run-97g47-1418128833 message: child 'awx-job-run-97g47-2315868407' failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.244Z" level=info msg="node awx-job-run-97g47-1418128833 finished: 2022-04-27 12:01:29.244822492 +0000 UTC" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.244Z" level=info msg="step group awx-job-run-97g47-1418128833 was unsuccessful: child 'awx-job-run-97g47-2315868407' failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Outbound nodes of awx-job-run-97g47-2315868407 is [awx-job-run-97g47-2315868407]" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Outbound nodes of awx-job-run-97g47 is [awx-job-run-97g47-2315868407]" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="node awx-job-run-97g47 phase Running -> Failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="node awx-job-run-97g47 message: child 'awx-job-run-97g47-2315868407' failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="node awx-job-run-97g47 finished: 2022-04-27 12:01:29.245077653 +0000 UTC" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Checking daemoned children of awx-job-run-97g47" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg=reconcileAgentPod namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Updated phase Running -> Failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Updated message  -> child 'awx-job-run-97g47-2315868407' failed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Marking workflow completed" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Marking workflow as pending archiving" namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.245Z" level=info msg="Checking daemoned children of " namespace=argo workflow=awx-job-run-97g47
time="2022-04-27T12:01:29.250Z" level=info msg="cleaning up pod" action=deletePod key=argo/awx-job-run-97g47-1340600742-agent/deletePod

If the workflow's pods have not been created, you can skip the rest of the diagnostics.
The workflow's pods that are problematic:
kubectl get pod -o yaml -l workflows.argoproj.io/workflow=${workflow},workflow.argoproj.io/phase!=Succeeded
        terminated:
          containerID: docker://92cb27db80eb6e1efec2d99d9d68efbf605dcf5c2736a60421c49d3212c6e663
          exitCode: 0
          finishedAt: "2022-04-27T12:01:25Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:24Z"
    - containerID: docker://507dcc5dbe2c6e7c960d933ab41b5e1c5d5444ebe9ebc7de510402353c8300cd
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: wait
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://507dcc5dbe2c6e7c960d933ab41b5e1c5d5444ebe9ebc7de510402353c8300cd
          exitCode: 1
          finishedAt: "2022-04-27T12:01:25Z"
          message: 'open /var/run/argo/outputs/artifacts/tmp/job-stdout.txt.tgz: no
            such file or directory'
          reason: Error
          startedAt: "2022-04-27T12:01:24Z"
    hostIP: <IP_ADDRESS>
    initContainerStatuses:
    - containerID: docker://7196d0ff500783dc001d0c456726160fb5916f998b79e692e03f5a1ae25066da
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: init
      ready: true
      restartCount: 0
      state:
        terminated:
          containerID: docker://7196d0ff500783dc001d0c456726160fb5916f998b79e692e03f5a1ae25066da
          exitCode: 0
          finishedAt: "2022-04-27T12:01:22Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:22Z"
    phase: Failed
    qosClass: Burstable
    startTime: "2022-04-27T12:01:19Z"
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      kubectl.kubernetes.io/default-container: main
      workflows.argoproj.io/node-id: awx-job-run-97g47-606952326
      workflows.argoproj.io/node-name: awx-job-run-97g47[2].monitor-job
    creationTimestamp: "2022-04-27T12:01:09Z"
    labels:
      workflows.argoproj.io/completed: "true"
      workflows.argoproj.io/workflow: awx-job-run-97g47
    name: awx-job-run-97g47-606952326
    namespace: argo
    ownerReferences:
    - apiVersion: argoproj.io/v1alpha1
      blockOwnerDeletion: true
      controller: true
      kind: Workflow
      name: awx-job-run-97g47
      uid: 1798aa08-013b-4690-adc3-9046b1d1ce75
    resourceVersion: "35957"
    uid: 2ffb8e4a-2206-4b63-8d36-c3c0d2d22f34
  spec:
    containers:
    - command:
      - argoexec
      - wait
      - --loglevel
      - info
      env:
      - name: ARGO_POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: ARGO_POD_UID
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.uid
      - name: GODEBUG
        value: x509ignoreCN=0
      - name: ARGO_WORKFLOW_NAME
        value: awx-job-run-97g47
      - name: ARGO_CONTAINER_NAME
        value: wait
      - name: ARGO_TEMPLATE
        value: '{"name":"monitor-job","inputs":{"parameters":[{"name":"awx_token","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"},{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"job","value":"21"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["jobs","monitor","21"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_OAUTH_TOKEN","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-606952326"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-606952326
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "false"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: quay.io/argoproj/argoexec:latest
      imagePullPolicy: Always
      name: wait
      resources:
        requests:
          cpu: 10m
          memory: 64Mi
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /argo/secret/my-minio-cred
        name: my-minio-cred
        readOnly: true
      - mountPath: /tmp
        name: tmp-dir-argo
        subPath: "0"
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-jtdx7
        readOnly: true
    - args:
      - jobs
      - monitor
      - "21"
      command:
      - /var/run/argo/argoexec
      - emissary
      - --
      - awx
      env:
      - name: TOWER_HOST
        value: http://awx-demo-service.awx.svc.cluster.local:80
      - name: TOWER_OAUTH_TOKEN
        value: LBmt9fjiODNn29YL9zeLUHR6PLITQS
      - name: ARGO_CONTAINER_NAME
        value: main
      - name: ARGO_TEMPLATE
        value: '{"name":"monitor-job","inputs":{"parameters":[{"name":"awx_token","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"},{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"job","value":"21"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["jobs","monitor","21"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_OAUTH_TOKEN","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-606952326"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-606952326
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "false"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: planbpoc.azurecr.io/planbpoc/awxkit:1.0
      imagePullPolicy: IfNotPresent
      name: main
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-jtdx7
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    initContainers:
    - command:
      - argoexec
      - init
      - --loglevel
      - info
      env:
      - name: ARGO_POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: ARGO_POD_UID
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.uid
      - name: GODEBUG
        value: x509ignoreCN=0
      - name: ARGO_WORKFLOW_NAME
        value: awx-job-run-97g47
      - name: ARGO_CONTAINER_NAME
        value: init
      - name: ARGO_TEMPLATE
        value: '{"name":"monitor-job","inputs":{"parameters":[{"name":"awx_token","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"},{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"job","value":"21"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["jobs","monitor","21"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_OAUTH_TOKEN","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-606952326"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-606952326
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "false"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: quay.io/argoproj/argoexec:latest
      imagePullPolicy: Always
      name: init
      resources:
        requests:
          cpu: 10m
          memory: 64Mi
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /argo/secret/my-minio-cred
        name: my-minio-cred
        readOnly: true
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-jtdx7
        readOnly: true
    nodeName: docker-desktop
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Never
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: default
    serviceAccountName: default
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
      tolerationSeconds: 300
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
      tolerationSeconds: 300
    volumes:
    - emptyDir: {}
      name: var-run-argo
    - emptyDir: {}
      name: tmp-dir-argo
    - name: my-minio-cred
      secret:
        defaultMode: 420
        items:
        - key: accesskey
          path: accesskey
        - key: secretkey
          path: secretkey
        secretName: my-minio-cred
    - name: kube-api-access-jtdx7
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:13Z"
      reason: PodCompleted
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:09Z"
      reason: PodCompleted
      status: "False"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:09Z"
      reason: PodCompleted
      status: "False"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:09Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: docker://a0924d76432a333f63a4db1477d80999ae1135a159ecf97341820463de75e7a7
      image: planbpoc.azurecr.io/planbpoc/awxkit:1.0
      imageID: docker-pullable://planbpoc.azurecr.io/planbpoc/awxkit@sha256:4d3922a08252005cfdebf42dfebf02821b70182f967d0820af232ddc03446acc
      lastState: {}
      name: main
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://a0924d76432a333f63a4db1477d80999ae1135a159ecf97341820463de75e7a7
          exitCode: 0
          finishedAt: "2022-04-27T12:01:15Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:15Z"
    - containerID: docker://3fa464c590c8d737bbd4ba591bf19d2cee8fe657c30c30e3ceda5bb8010b7590
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: wait
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://3fa464c590c8d737bbd4ba591bf19d2cee8fe657c30c30e3ceda5bb8010b7590
          exitCode: 0
          finishedAt: "2022-04-27T12:01:16Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:15Z"
    hostIP: <IP_ADDRESS>
    initContainerStatuses:
    - containerID: docker://5de0baad37afce1756a19a61bf27079d49abe0dbd73b2fd2699cb15283e98ca2
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: init
      ready: true
      restartCount: 0
      state:
        terminated:
          containerID: docker://5de0baad37afce1756a19a61bf27079d49abe0dbd73b2fd2699cb15283e98ca2
          exitCode: 0
          finishedAt: "2022-04-27T12:01:12Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:12Z"
    phase: Succeeded
    qosClass: Burstable
    startTime: "2022-04-27T12:01:09Z"
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      kubectl.kubernetes.io/default-container: main
      workflows.argoproj.io/node-id: awx-job-run-97g47-650702330
      workflows.argoproj.io/node-name: awx-job-run-97g47[1].run-job
    creationTimestamp: "2022-04-27T12:00:59Z"
    labels:
      workflows.argoproj.io/completed: "true"
      workflows.argoproj.io/workflow: awx-job-run-97g47
    name: awx-job-run-97g47-650702330
    namespace: argo
    ownerReferences:
    - apiVersion: argoproj.io/v1alpha1
      blockOwnerDeletion: true
      controller: true
      kind: Workflow
      name: awx-job-run-97g47
      uid: 1798aa08-013b-4690-adc3-9046b1d1ce75
    resourceVersion: "35901"
    uid: f6577a12-a5cd-4fdd-869a-66ab9095ccff
  spec:
    containers:
    - command:
      - argoexec
      - wait
      - --loglevel
      - info
      env:
      - name: ARGO_POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: ARGO_POD_UID
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.uid
      - name: GODEBUG
        value: x509ignoreCN=0
      - name: ARGO_WORKFLOW_NAME
        value: awx-job-run-97g47
      - name: ARGO_CONTAINER_NAME
        value: wait
      - name: ARGO_TEMPLATE
        value: '{"name":"run-job","inputs":{"parameters":[{"name":"awx_token","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"},{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"job_template","value":"VM
          Demo Job with Parameters"},{"name":"job_parameters","default":"","value":"{
          \"vm_cpu_count\": 5 }"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["job_templates","launch","VM
          Demo Job with Parameters","--extra_vars","{ \"vm_cpu_count\": 5 }"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_OAUTH_TOKEN","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-650702330"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-650702330
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "true"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: quay.io/argoproj/argoexec:latest
      imagePullPolicy: Always
      name: wait
      resources:
        requests:
          cpu: 10m
          memory: 64Mi
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /argo/secret/my-minio-cred
        name: my-minio-cred
        readOnly: true
      - mountPath: /tmp
        name: tmp-dir-argo
        subPath: "0"
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-bvskm
        readOnly: true
    - args:
      - job_templates
      - launch
      - VM Demo Job with Parameters
      - --extra_vars
      - '{ "vm_cpu_count": 5 }'
      command:
      - /var/run/argo/argoexec
      - emissary
      - --
      - awx
      env:
      - name: TOWER_HOST
        value: http://awx-demo-service.awx.svc.cluster.local:80
      - name: TOWER_OAUTH_TOKEN
        value: LBmt9fjiODNn29YL9zeLUHR6PLITQS
      - name: ARGO_CONTAINER_NAME
        value: main
      - name: ARGO_TEMPLATE
        value: '{"name":"run-job","inputs":{"parameters":[{"name":"awx_token","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"},{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"job_template","value":"VM
          Demo Job with Parameters"},{"name":"job_parameters","default":"","value":"{
          \"vm_cpu_count\": 5 }"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["job_templates","launch","VM
          Demo Job with Parameters","--extra_vars","{ \"vm_cpu_count\": 5 }"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_OAUTH_TOKEN","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-650702330"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-650702330
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "true"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: planbpoc.azurecr.io/planbpoc/awxkit:1.0
      imagePullPolicy: IfNotPresent
      name: main
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-bvskm
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    initContainers:
    - command:
      - argoexec
      - init
      - --loglevel
      - info
      env:
      - name: ARGO_POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: ARGO_POD_UID
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.uid
      - name: GODEBUG
        value: x509ignoreCN=0
      - name: ARGO_WORKFLOW_NAME
        value: awx-job-run-97g47
      - name: ARGO_CONTAINER_NAME
        value: init
      - name: ARGO_TEMPLATE
        value: '{"name":"run-job","inputs":{"parameters":[{"name":"awx_token","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"},{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"job_template","value":"VM
          Demo Job with Parameters"},{"name":"job_parameters","default":"","value":"{
          \"vm_cpu_count\": 5 }"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["job_templates","launch","VM
          Demo Job with Parameters","--extra_vars","{ \"vm_cpu_count\": 5 }"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_OAUTH_TOKEN","value":"LBmt9fjiODNn29YL9zeLUHR6PLITQS"}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-650702330"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-650702330
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "true"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: quay.io/argoproj/argoexec:latest
      imagePullPolicy: Always
      name: init
      resources:
        requests:
          cpu: 10m
          memory: 64Mi
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /argo/secret/my-minio-cred
        name: my-minio-cred
        readOnly: true
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-bvskm
        readOnly: true
    nodeName: docker-desktop
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Never
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: default
    serviceAccountName: default
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
      tolerationSeconds: 300
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
      tolerationSeconds: 300
    volumes:
    - emptyDir: {}
      name: var-run-argo
    - emptyDir: {}
      name: tmp-dir-argo
    - name: my-minio-cred
      secret:
        defaultMode: 420
        items:
        - key: accesskey
          path: accesskey
        - key: secretkey
          path: secretkey
        secretName: my-minio-cred
    - name: kube-api-access-bvskm
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:02Z"
      reason: PodCompleted
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:06Z"
      reason: PodCompleted
      status: "False"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:01:06Z"
      reason: PodCompleted
      status: "False"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:00:59Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: docker://cbd2994eb1806e5029867b0335686e77084525029a0dcb5b87925dfd72f2e91e
      image: planbpoc.azurecr.io/planbpoc/awxkit:1.0
      imageID: docker-pullable://planbpoc.azurecr.io/planbpoc/awxkit@sha256:4d3922a08252005cfdebf42dfebf02821b70182f967d0820af232ddc03446acc
      lastState: {}
      name: main
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://cbd2994eb1806e5029867b0335686e77084525029a0dcb5b87925dfd72f2e91e
          exitCode: 0
          finishedAt: "2022-04-27T12:01:05Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:04Z"
    - containerID: docker://2501ca789cb0b0198d4e5b419e0c112977d14f40fad62a8ec650c4e86fa55edb
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: wait
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://2501ca789cb0b0198d4e5b419e0c112977d14f40fad62a8ec650c4e86fa55edb
          exitCode: 0
          finishedAt: "2022-04-27T12:01:06Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:04Z"
    hostIP: <IP_ADDRESS>
    initContainerStatuses:
    - containerID: docker://a2e34b5392f9333a6dcfd4bae8b7d3ed5d28788ba29b7fc88e1e1e86c21a9c8d
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: init
      ready: true
      restartCount: 0
      state:
        terminated:
          containerID: docker://a2e34b5392f9333a6dcfd4bae8b7d3ed5d28788ba29b7fc88e1e1e86c21a9c8d
          exitCode: 0
          finishedAt: "2022-04-27T12:01:02Z"
          reason: Completed
          startedAt: "2022-04-27T12:01:02Z"
    phase: Succeeded
    podIP: <IP_ADDRESS>
    podIPs:
    - ip: <IP_ADDRESS>
    qosClass: Burstable
    startTime: "2022-04-27T12:00:59Z"
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      kubectl.kubernetes.io/default-container: main
      workflows.argoproj.io/node-id: awx-job-run-97g47-793822161
      workflows.argoproj.io/node-name: awx-job-run-97g47[0].login
    creationTimestamp: "2022-04-27T12:00:49Z"
    labels:
      workflows.argoproj.io/completed: "true"
      workflows.argoproj.io/workflow: awx-job-run-97g47
    name: awx-job-run-97g47-793822161
    namespace: argo
    ownerReferences:
    - apiVersion: argoproj.io/v1alpha1
      blockOwnerDeletion: true
      controller: true
      kind: Workflow
      name: awx-job-run-97g47
      uid: 1798aa08-013b-4690-adc3-9046b1d1ce75
    resourceVersion: "35849"
    uid: d4574e80-b83a-4e0e-92e0-13ea685564f4
  spec:
    containers:
    - command:
      - argoexec
      - wait
      - --loglevel
      - info
      env:
      - name: ARGO_POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: ARGO_POD_UID
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.uid
      - name: GODEBUG
        value: x509ignoreCN=0
      - name: ARGO_WORKFLOW_NAME
        value: awx-job-run-97g47
      - name: ARGO_CONTAINER_NAME
        value: wait
      - name: ARGO_TEMPLATE
        value: '{"name":"login","inputs":{"parameters":[{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"awx_username","value":"admin"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["login"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_USERNAME","value":"admin"},{"name":"TOWER_PASSWORD","valueFrom":{"secretKeyRef":{"name":"awx-secret","key":"password","optional":false}}}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-793822161"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-793822161
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "true"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: quay.io/argoproj/argoexec:latest
      imagePullPolicy: Always
      name: wait
      resources:
        requests:
          cpu: 10m
          memory: 64Mi
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /argo/secret/my-minio-cred
        name: my-minio-cred
        readOnly: true
      - mountPath: /tmp
        name: tmp-dir-argo
        subPath: "0"
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-rfnwf
        readOnly: true
    - args:
      - login
      command:
      - /var/run/argo/argoexec
      - emissary
      - --
      - awx
      env:
      - name: TOWER_HOST
        value: http://awx-demo-service.awx.svc.cluster.local:80
      - name: TOWER_USERNAME
        value: admin
      - name: TOWER_PASSWORD
        valueFrom:
          secretKeyRef:
            key: password
            name: awx-secret
            optional: false
      - name: ARGO_CONTAINER_NAME
        value: main
      - name: ARGO_TEMPLATE
        value: '{"name":"login","inputs":{"parameters":[{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"awx_username","value":"admin"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["login"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_USERNAME","value":"admin"},{"name":"TOWER_PASSWORD","valueFrom":{"secretKeyRef":{"name":"awx-secret","key":"password","optional":false}}}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-793822161"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-793822161
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "true"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: planbpoc.azurecr.io/planbpoc/awxkit:1.0
      imagePullPolicy: IfNotPresent
      name: main
      resources: {}
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-rfnwf
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    initContainers:
    - command:
      - argoexec
      - init
      - --loglevel
      - info
      env:
      - name: ARGO_POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: ARGO_POD_UID
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.uid
      - name: GODEBUG
        value: x509ignoreCN=0
      - name: ARGO_WORKFLOW_NAME
        value: awx-job-run-97g47
      - name: ARGO_CONTAINER_NAME
        value: init
      - name: ARGO_TEMPLATE
        value: '{"name":"login","inputs":{"parameters":[{"name":"awx_host","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"awx_username","value":"admin"}]},"outputs":{},"metadata":{},"container":{"name":"","image":"planbpoc.azurecr.io/planbpoc/awxkit:1.0","command":["awx"],"args":["login"],"env":[{"name":"TOWER_HOST","value":"http://awx-demo-service.awx.svc.cluster.local:80"},{"name":"TOWER_USERNAME","value":"admin"},{"name":"TOWER_PASSWORD","valueFrom":{"secretKeyRef":{"name":"awx-secret","key":"password","optional":false}}}],"resources":{}},"archiveLocation":{"archiveLogs":true,"s3":{"endpoint":"minio:9000","bucket":"my-bucket","insecure":true,"accessKeySecret":{"name":"my-minio-cred","key":"accesskey"},"secretKeySecret":{"name":"my-minio-cred","key":"secretkey"},"key":"awx-job-run-97g47/awx-job-run-97g47-793822161"}}}'
      - name: ARGO_NODE_ID
        value: awx-job-run-97g47-793822161
      - name: ARGO_INCLUDE_SCRIPT_OUTPUT
        value: "true"
      - name: ARGO_DEADLINE
        value: "0001-01-01T00:00:00Z"
      - name: ARGO_PROGRESS_FILE
        value: /var/run/argo/progress
      - name: ARGO_PROGRESS_PATCH_TICK_DURATION
        value: 1m0s
      - name: ARGO_PROGRESS_FILE_TICK_DURATION
        value: 3s
      image: quay.io/argoproj/argoexec:latest
      imagePullPolicy: Always
      name: init
      resources:
        requests:
          cpu: 10m
          memory: 64Mi
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /argo/secret/my-minio-cred
        name: my-minio-cred
        readOnly: true
      - mountPath: /var/run/argo
        name: var-run-argo
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-rfnwf
        readOnly: true
    nodeName: docker-desktop
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Never
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: default
    serviceAccountName: default
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
      tolerationSeconds: 300
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
      tolerationSeconds: 300
    volumes:
    - emptyDir: {}
      name: var-run-argo
    - emptyDir: {}
      name: tmp-dir-argo
    - name: my-minio-cred
      secret:
        defaultMode: 420
        items:
        - key: accesskey
          path: accesskey
        - key: secretkey
          path: secretkey
        secretName: my-minio-cred
    - name: kube-api-access-rfnwf
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:00:53Z"
      reason: PodCompleted
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:00:49Z"
      reason: PodCompleted
      status: "False"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:00:49Z"
      reason: PodCompleted
      status: "False"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2022-04-27T12:00:49Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: docker://1896b80a55de27432c23125173f7ba4474fbb815834f49962d8469110410f9ef
      image: planbpoc.azurecr.io/planbpoc/awxkit:1.0
      imageID: docker-pullable://planbpoc.azurecr.io/planbpoc/awxkit@sha256:4d3922a08252005cfdebf42dfebf02821b70182f967d0820af232ddc03446acc
      lastState: {}
      name: main
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://1896b80a55de27432c23125173f7ba4474fbb815834f49962d8469110410f9ef
          exitCode: 0
          finishedAt: "2022-04-27T12:00:55Z"
          reason: Completed
          startedAt: "2022-04-27T12:00:55Z"
    - containerID: docker://c8efb9de59b5e24a4b4b6b21d62379dbfa22727c9852826ea5c4d842e4ae7427
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: wait
      ready: false
      restartCount: 0
      started: false
      state:
        terminated:
          containerID: docker://c8efb9de59b5e24a4b4b6b21d62379dbfa22727c9852826ea5c4d842e4ae7427
          exitCode: 0
          finishedAt: "2022-04-27T12:00:56Z"
          reason: Completed
          startedAt: "2022-04-27T12:00:55Z"
    hostIP: <IP_ADDRESS>
    initContainerStatuses:
    - containerID: docker://9dd191bdea965da20559d8d8526ffe1bf711a4c7954541bee10a8651c047a19a
      image: quay.io/argoproj/argoexec:latest
      imageID: docker-pullable://quay.io/argoproj/argoexec@sha256:cb127879bb0354a72c3777e1f5edefcba1e6540381eb85cae32829ea2d7fc2b7
      lastState: {}
      name: init
      ready: true
      restartCount: 0
      state:
        terminated:
          containerID: docker://9dd191bdea965da20559d8d8526ffe1bf711a4c7954541bee10a8651c047a19a
          exitCode: 0
          finishedAt: "2022-04-27T12:00:52Z"
          reason: Completed
          startedAt: "2022-04-27T12:00:52Z"
    phase: Succeeded
    podIP: <IP_ADDRESS>
    podIPs:
    - ip: <IP_ADDRESS>
    qosClass: Burstable
    startTime: "2022-04-27T12:00:49Z"

# Logs from in your workflow's wait container, something like:
kubectl logs -c wait -l workflows.argoproj.io/workflow=${workflow},workflow.argoproj.io/phase!=Succeeded
time="2022-04-27T12:01:25.503Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2022-04-27T12:01:25.503Z" level=info msg="No output parameters"
time="2022-04-27T12:01:25.503Z" level=info msg="Saving output artifacts"
time="2022-04-27T12:01:25.503Z" level=info msg="Staging artifact: stdout"
time="2022-04-27T12:01:25.503Z" level=info msg="Copying /tmp/job-stdout.txt from container base image layer to /tmp/argo/outputs/artifacts/stdout.tgz"
time="2022-04-27T12:01:25.503Z" level=info msg="/var/run/argo/outputs/artifacts/tmp/job-stdout.txt.tgz -> /tmp/argo/outputs/artifacts/stdout.tgz"
time="2022-04-27T12:01:25.503Z" level=error msg="executor error: open /var/run/argo/outputs/artifacts/tmp/job-stdout.txt.tgz: no such file or directory"
time="2022-04-27T12:01:25.521Z" level=info msg="Create workflowtaskresults 201"
time="2022-04-27T12:01:25.522Z" level=info msg="Alloc=6300 TotalAlloc=11932 Sys=24018 NumGC=4 Goroutines=9"
time="2022-04-27T12:01:25.522Z" level=fatal msg="open /var/run/argo/outputs/artifacts/tmp/job-stdout.txt.tgz: no such file or directory"
time="2022-04-27T12:01:16.195Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: awx-job-run-97g47/awx-job-run-97g47-606952326/main.log"
time="2022-04-27T12:01:16.195Z" level=info msg="Creating minio client using static credentials" endpoint="minio:9000"
time="2022-04-27T12:01:16.195Z" level=info msg="Saving file to s3" bucket=my-bucket endpoint="minio:9000" key=awx-job-run-97g47/awx-job-run-97g47-606952326/main.log path=/tmp/argo/outputs/logs/main.log
time="2022-04-27T12:01:16.204Z" level=info msg="Save artifact" artifactName=main-logs duration=9.289695ms error="<nil>" key=awx-job-run-97g47/awx-job-run-97g47-606952326/main.log
time="2022-04-27T12:01:16.204Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2022-04-27T12:01:16.204Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2022-04-27T12:01:16.204Z" level=info msg="No output parameters"
time="2022-04-27T12:01:16.204Z" level=info msg="No output artifacts"
time="2022-04-27T12:01:16.210Z" level=info msg="Create workflowtaskresults 201"
time="2022-04-27T12:01:16.211Z" level=info msg="Alloc=6638 TotalAlloc=11867 Sys=20178 NumGC=4 Goroutines=9"
time="2022-04-27T12:01:06.518Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: awx-job-run-97g47/awx-job-run-97g47-650702330/main.log"
time="2022-04-27T12:01:06.518Z" level=info msg="Creating minio client using static credentials" endpoint="minio:9000"
time="2022-04-27T12:01:06.519Z" level=info msg="Saving file to s3" bucket=my-bucket endpoint="minio:9000" key=awx-job-run-97g47/awx-job-run-97g47-650702330/main.log path=/tmp/argo/outputs/logs/main.log
time="2022-04-27T12:01:06.530Z" level=info msg="Save artifact" artifactName=main-logs duration=11.335634ms error="<nil>" key=awx-job-run-97g47/awx-job-run-97g47-650702330/main.log
time="2022-04-27T12:01:06.530Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2022-04-27T12:01:06.530Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2022-04-27T12:01:06.530Z" level=info msg="No output parameters"
time="2022-04-27T12:01:06.530Z" level=info msg="No output artifacts"
time="2022-04-27T12:01:06.538Z" level=info msg="Create workflowtaskresults 201"
time="2022-04-27T12:01:06.539Z" level=info msg="Alloc=6170 TotalAlloc=12187 Sys=24274 NumGC=4 Goroutines=9"
time="2022-04-27T12:00:56.352Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: awx-job-run-97g47/awx-job-run-97g47-793822161/main.log"
time="2022-04-27T12:00:56.352Z" level=info msg="Creating minio client using static credentials" endpoint="minio:9000"
time="2022-04-27T12:00:56.352Z" level=info msg="Saving file to s3" bucket=my-bucket endpoint="minio:9000" key=awx-job-run-97g47/awx-job-run-97g47-793822161/main.log path=/tmp/argo/outputs/logs/main.log
time="2022-04-27T12:00:56.365Z" level=info msg="Save artifact" artifactName=main-logs duration=12.818185ms error="<nil>" key=awx-job-run-97g47/awx-job-run-97g47-793822161/main.log
time="2022-04-27T12:00:56.365Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2022-04-27T12:00:56.365Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2022-04-27T12:00:56.365Z" level=info msg="No output parameters"
time="2022-04-27T12:00:56.365Z" level=info msg="No output artifacts"
time="2022-04-27T12:00:56.372Z" level=info msg="Create workflowtaskresults 201"
time="2022-04-27T12:00:56.373Z" level=info msg="Alloc=7150 TotalAlloc=11791 Sys=19410 NumGC=3 Goroutines=9"

Message from the maintainers:
Impacted by this regression? Give it a 👍. We prioritise the issues with the most 👍.

Can you check if your /tmp/job/stdout.txt has been created successfully?

Yes, as you can see, I included an echo and cat in the workflow step to output the file contents. It looks fine. Only thing I can do otherwise is an ls -la in /tmp/job but I'm pretty sure the file does exist.

I'm wondering if this happens when the main container fails and has not created the outputs. The wait container tries to save something that does not exist and errors.

It's a good theory, but that doesn't really seem to be the case here. I can try some more diagnostics to make sure the file really does exist, but I think it has something to do with the container.

Upon some further investigatio, there seem to be three issues with my workflow that didn't allow the artifacts to be generated:

Providing multiple args doesn't work well.
Using awx as the command doesn't allow other commands such as tee to run.
{{outputs.artifacts.stdout}} cannot be interpolated in the args.

After fixing my workflow template looks like this:
    - name: get-job-stdout
      inputs:
        parameters:
          - name: awx_token
          - name: awx_host
          - name: job
      container:
        image: planbpoc.azurecr.io/planbpoc/awxkit:1.2
        command: [sh, -c]
        args:
          [
            "mkdir -p '/tmp/jobs/{{inputs.parameters.job}}'; awx jobs stdout {{inputs.parameters.job}} | tee /tmp/jobs/{{inputs.parameters.job}}/stdout.txt",
          ]
        env:
          - name: TOWER_HOST
            value: "{{inputs.parameters.awx_host}}"
          - name: TOWER_OAUTH_TOKEN
            value: "{{inputs.parameters.awx_token}}"
      outputs:
        artifacts:
          - name: stdout
            path: "/tmp/jobs/{{inputs.parameters.job}}/stdout.txt"

A little bit duplicate code, and one long command to create the folders, generate the output, and save it, but this works. These might be bugs in Argo, but with this solution I was able to fix my problem. Thanks for everyone that helped!

@Dan6erbond any idea if there's a chance for having this issue fixed? I'm having the exact same problem but I don't really know how to fix it. I'm using multiple args as well, but IMO this is clearly a bug if it's breaking the output parameters:
- name: deploy-app
inputs:
  parameters:
    - name: instance
  artifacts:
  - name: argo-source
    path: /src
    git:
      repo<EMAIL_ADDRESS>      revision: "master"
      sshPrivateKeySecret:
        name: gitlab-creds
        key: ssh-private-key
      insecureIgnoreHostKey: true
outputs:
  parameters:
    - name: output
      valueFrom:
        path: /tmp/output.txt
container:
  image: ****/custom-deploy:latest
  imagePullPolicy: Always
  command: ["python", "main.py"]
  args:
    - deploy
    - --name
    - "{{`{{inputs.parameters.instance}}`}}"
  volumeMounts:
    - name: ssh-private-key
      mountPath: /usr/src/key
    - name: ssh-config
      mountPath: /root/.ssh

Result is:
time="2023-10-16T14:33:26 UTC" level=error msg="cannot save parameter /tmp/output.txt" argo=true error="open /tmp/output.txt: no such file or directory

Things are not going better if mounting a volume:
time="2023-10-16T14:00:41 UTC" level=info msg="no need to save parameter - on overlapping volume: /result/output.txt" argo=true


DateTime Picker needs more of the props exposed

Feature Request
Description
As a consumer, I want a lot of the internal state available so that I dont need to recalculate and duplicate the logic done inside the separate controls.
This includes:

When the control is in the ambiguous hour
When the date control is empty
When the date control is invalid
When the time control is empty (potentially to the granularity of both the hour and minute controls)
When the time control is invalid (potentially to the granularity of both the hour and minute controls)

Additional Context / Screenshots
We are needing a date time component where the control has to be filled out and has to be valid.  While we can default the value, and we are, a user could remove said value and depending on how much information is filled out, we may not be able to delineate between '00:00' and an empty value.
As for the ambiguity check, our use case is we have 2 timezones that we manage.  If these two timezones diverge, we put a timezone abbreviation of one of the timezones to the right of this control.  The issue arises when this control is ambiguous, it also puts a timezone abbreviation to the right of the control.  We need to be able to suppress our timezone abbreviation if the date time control is showing it's abbreviation.

@PandaFlieg would listening to the onBlur event described here (https://engineering.cerner.com/terra-ui/components/terra-date-time-picker/date-time-picker/events) help you with the last 4 items in your bullet?  As for the ambiguous hour, would it be helpful if we had a new prop that allowed for the time zone to always display?

When the control is in the ambiguous hour

Currently, there is no API to indicate that the entered time is the ambiguous hour but we can easily return a flag in onChange/onChangeRaw to do so.

When the date control is empty
When the date control is invalid
When the time control is empty (potentially to the granularity of both the hour and minute controls)
When the time control is invalid (potentially to the granularity of both the hour and minute controls)

You can listen to onChange/onChangeRaw or the options returned in onBlur depending on when you need to handle this.

@PandaFlieg When during the workflow do you expect this information to be sent to the consumer? Do you expect this to be sent as soon as the change is made (i.e. OnChange/OnChangeRaw) or when the focus leaves the entire container component (i.e. OnBlur).

Our requirements have changed a bit since this was first posted but after reading the api here:
https://engineering.cerner.com/terra-ui/components/terra-date-time-picker/date-time-picker/events
for onBlur, I am thinking there is a chance we could subscribe to the onBlur event for the validation we need.
The only exception to this rule might be for the ambiguous hour mentioned in the first post.
I'll see if I can get an update on the requirements we need as we had re-prioritized the controls we supported based on what implementations were available.

Design
terra-date-time-picker

The onBlur callback currently provides some metadata about the state of the entered date/time value. We should extend this to include the following information:

isAmbiguousHour - Use the checkAmbiguousTime helper to determine if the entered date/time is ambiguous. We could add a new onAmbiguousHour callback prop to notify the consumer but adding this as an attribute in the metadata make it more consistent with the existing data.
dateValue and timeValue - The current metadata returns and inputValue string that includes both the date and time values. With the date and time values separated out, this makes it easier for consumers read and parse to determine if each value is empty/invalid.

Currently this metadata is only returned in onBlur, we should wrap this logic in a function and return the same metadata for the onChange and onChangeRaw` props. Note: The onChange and onChangeRaw props currently already return the entered value as the second parameter. For passivity, the additional metadata should be added in a third parameter instead of consolidating them.

terra-date-picker

The additional attributes above are not applicable to the date-picker. However, the existing metadata returned in onBlur should also be returned on onChange and onChangeRaw for consistency with date-time-picker.

terra-time-input

terra-time-input currently just returns the entered time value and doesn't return the additional metadata like in date-time-picker. However, since those additional metadata in date-time-picker are not applicable for the time-input, the returned time value should be sufficient to consumers to validate and make decisions.

cc/ @PandaFlieg

@benbcai ,should we pass any parameters here for onAmbiguousHour callback ? if No, then Should AmbiguousHour check be a boolean attribute or callback ?  anyhow dateValue, timeValue and inputValue provides the required data to the consumers.

@ShettyAkarsh I don't think we need the onAmbiguousHour callback prop since we will add the isAmbiguousHour in the metadata returned in the onBlur, onChange, and onChangeRaw props. isAmbiguousHour should be a boolean.
@PandaFlieg Does returning the isAmbiguousHour boolean in the onBlur, onChange, and onChangeRaw props sufficient for your use case to determine whether or not to suppress your version of the timezone abbreviation? Or is there a need for this to be a callback prop instead of a boolean attribute?