Compile error in macos-arm

Hello, we use zpp_bits in our project (https://github.com/Yikai-Liao/symusic) for python pickle support. When compiling using macos-arm, it raises some errors related to span and string_view:
In file included from /Users/runner/work/symusic/symusic/src/symusic.cpp:11:
In file included from /Users/runner/work/symusic/symusic/include/Score.hpp:15:
/Users/runner/work/symusic/symusic/3rdparty/zpp_bits/zpp_bits.h:2534:32: error: no matching constructor for initialization of 'std::span<char,<PHONE_NUMBER>3709551615>'
                               std::span{std::declval<ByteView &>()})>>;
                               ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/symusic/symusic/src/symusic.cpp:60:15: note: in instantiation of template class 'zpp::bits::in<std::string_view>' requested here
    auto in = zpp::bits::in(data);
              ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:402:15: note: candidate constructor not viable: no known conversion from 'std::string_view' to 'const std::span<char,<PHONE_NUMBER>3709551615>' for 1st argument
    constexpr span           (const span&) noexcept = default;
              ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:410:15: note: candidate template ignored: could not match 'std::span<char,<PHONE_NUMBER>3709551615>::element_type[_Sz]' against 'std::string_view'
    constexpr span(element_type (&__arr)[_Sz])          noexcept : __data{__arr}, __size{_Sz} {}
              ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:415:15: note: candidate template ignored: could not match 'array' against 'basic_string_view'
    constexpr span(array<_OtherElementType, _Sz>& __arr) noexcept : __data{__arr.data()}, __size{_Sz} {}
              ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:420:15: note: candidate template ignored: could not match 'array' against 'basic_string_view'
    constexpr span(const array<_OtherElementType, _Sz>& __arr) noexcept : __data{__arr.data()}, __size{_Sz} {}
              ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:424:19: note: candidate template ignored: requirement '__is_span_compatible_container<std::string_view, char, void>::value' was not satisfied [with _Container = std::string_view]
        constexpr span(      _Container& __c,
                  ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:430:19: note: candidate template ignored: requirement '__is_span_compatible_container<const std::string_view, char, void>::value' was not satisfied [with _Container = std::string_view]
        constexpr span(const _Container& __c,
                  ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:437:19: note: candidate template ignored: could not match 'span' against 'basic_string_view'
        constexpr span(const span<_OtherElementType, _OtherExtent>& __other,
                  ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:400:41: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
    _LIBCPP_INLINE_VISIBILITY constexpr span() noexcept : __data{nullptr}, __size{0} {}
                                        ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:405:41: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    _LIBCPP_INLINE_VISIBILITY constexpr span(pointer __ptr, size_type __count) : __data{__ptr}, __size{__count} {}
                                        ^
/Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/span:406:41: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    _LIBCPP_INLINE_VISIBILITY constexpr span(pointer __f, pointer __l) : __data{__f}, __size{static_cast<size_t>(distance(__f, __l))} {}
                                        ^

Here are the compiler we used:
-- The C compiler identification is AppleClang <IP_ADDRESS>00029
-- The CXX compiler identification is AppleClang <IP_ADDRESS>00029

We also added set(CMAKE_CXX_STANDARD 20) in our CMakeLists.txt.
And in Linux, it compiled successfully. That' s weird. What happened and how can I fix it?

Hi,
I compiled this example from your source code and it works on my M1 Mac with apple clang, and my version is Apple clang version 14.0.3, maybe it's a bug with your compiler? Maybe try to work around by converting your bytes to a span of const chars?
    auto data = std::string_view(bytes);
    auto in = zpp::bits::in(data);
    T self;
    in(self).or_throw();
    return self;

I

Thanks a lot. Converting string_view to span works.
However, in the source code, I don't find any constructor for in that accepts string_view as the argument.
I'm curious about what really happens that makes it compiled successfully on those native platforms (distinguish from the mac platform in github actions).
    constexpr explicit in(ByteView && view, Options && ... options) : m_data(view)
    {
        static_assert(!resizable);
        (options(*this), ...);
    }

    constexpr explicit in(ByteView & view, Options && ... options) : m_data(view)
    {
        (options(*this), ...);
    }

It’s the 7th constructor of span that allows it to take a string view - https://en.cppreference.com/w/cpp/container/span/span


Speed up

Whilst working on my other PR I found --tree to be quite slow compared to tree and so analysed cargo flamegraph results resulting in reducing unnecessary allocations and system calls, producing a significant speed gain for the --tree and -R options.

Original flamegraph: (--tree)

After optimisations: (--tree)

After optimisations: (-R)

Originally, the main bottleneck was system calls in order to retrieve uid and gid properties and the following processing into strings when the -R and --tree options do not need this information so now on unix, the information is lazy loaded.
Now, in the optimised --tree graph, we see the main bottleneck now is creating the rest of the Meta struct and that the sorting and display isn't too shabby. In the optimised -R graph, we see the displaying and sorting of information into a grid is the biggest bottleneck for this option. This would indicate for future optimisations, some information and processing may need to be lazy loaded for the Meta struct or perhaps simply the algorithms need optimising, on top of improving the grid/tree display performance.
Nevertheless, overall this PR has managed to make the following speed gains, tested only on my linux x86_64 machine with hyperfine, compared with native equivalents ls -R and tree:
~ 5 000 directories, 56 000 files, 27G

Command
Mean [s]
Min [s]
Max [s]
Relative

lsd --tree
2.374 ± 0.016
2.350
2.400
6.89 ± 0.15

lsd --tree (opt.)
0.537 ± 0.007
0.528
0.550
1.56 ± 0.04

tree
0.345 ± 0.007
0.338
0.360
1.00

Command
Mean [s]
Min [s]
Max [s]
Relative

lsd -R
2.495 ± 0.027
2.458
2.535
19.77 ± 0.33

lsd -R (opt.)
0.649 ± 0.011
0.639
0.668
5.14 ± 0.11

ls -R
0.126 ± 0.002
0.123
0.130
1.00

Codecov Report

Merging #441 into master will increase coverage by 0.13%.
The diff coverage is 55.31%.

@@            Coverage Diff             @@
##           master     #441      +/-   ##
==========================================
+ Coverage   78.54%   78.67%   +0.13%
==========================================
  Files          34       34
  Lines        3360     3344      -16
==========================================
- Hits         2639     2631       -8
+ Misses        721      713       -8

Impacted Files
Coverage Δ

src/meta/permissions.rs
36.95% <ø> (+1.53%)
:arrow_up:

src/meta/symlink.rs
11.11% <0.00%> (+4.65%)
:arrow_up:

src/meta/owner.rs
16.66% <15.38%> (-25.01%)
:arrow_down:

src/meta/mod.rs
17.92% <66.66%> (ø)

src/meta/name.rs
94.06% <75.86%> (+0.25%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3537575...99f4886. Read the comment docs.

What do you think about jwalk?

What do you think about jwalk?

Upon looking into it I will see if it helps specifically for these recursive descents I'll try it

@0jdxt Do you have planed to finish this PR and resolve the merge conflicts?

@0jdxt Do you have planed to finish this PR and resolve the merge conflicts?

Hi! I've been busy so feel free. It's just such a mess I feel i should be responsible for cleaning it up. Alas, this PR could be merged soon, I'm just a bit concerned on how I've changed the flow of the program a bit and the structure of the program is getting quite complex. Either way the repo needs a tidy up at least with some comments describing the flow of the program so its easier to follow, especially for those who want to contribute to the repo and is reading the code for the first time.

Hey @0jdxt , you will have to rebase on master instead of merging from master.

summary: Some code is merely tidied. Replaced String of Name with Cow, reducing unnecessary allocs. Meta keeps raw Metadata to avoid second syscall for the metadata during colouring/rendering. Keep Owner as u64 until rendered. Change icons to chars and use the faster FxHashMap, delegates separator flag to Name::render. Name::escape function was O(2n), reduced to O(n). 'Name::Ord' now uses to_ascii_lowercase instead, increasing speed of comparisons.

Hey @0jdxt , please don't squash and force push every change. It makes it harder to review just the changes.

Hey @0jdxt , please don't squash and force push every change. It makes it harder to review just the changes.

You can click on force pushed to see an interdiff.
https://github.com/Peltoche/lsd/compare/04bb7141df9226a774cb1cba91977514d20b3625..0f3eb3e459267d78207e3cfa8eca8b23b81a3fb0

Hey @0jdxt , please don't squash and force push every change. It makes it harder to review just the changes.

Hi sorry still not used to this PR stuff

@0jdxt Had to merge in https://github.com/Peltoche/lsd/pull/489 . You will have to rebase your current PR on top of master.
This looks mostly good to go otherwise.

@0jdxt Had to merge in #489 . You will have to rebase your PR on top of current master.
This looks mostly good to go otherwise.

Rebased! should be good to go

Codecov Report

Merging #441 (38a6933) into master (b6bd1d3) will increase coverage by 0.44%.
The diff coverage is 63.06%.

@@            Coverage Diff             @@
##           master     #441      +/-   ##
==========================================
+ Coverage   80.71%   81.16%   +0.44%
==========================================
  Files          35       35
  Lines        3449     3413      -36
==========================================
- Hits         2784     2770      -14
+ Misses        665      643      -22

Impacted Files
Coverage Δ

src/core.rs
0.00% <0.00%> (ø)

src/display.rs
25.26% <0.00%> (-0.23%)
:arrow_down:

src/main.rs
10.00% <ø> (+10.00%)
:arrow_up:

src/meta/permissions.rs
36.95% <ø> (+1.53%)
:arrow_up:

src/meta/owner.rs
16.66% <15.38%> (-25.01%)
:arrow_down:

src/meta/mod.rs
18.81% <18.18%> (+0.88%)
:arrow_up:

src/meta/symlink.rs
90.24% <50.00%> (+20.43%)
:arrow_up:

src/app.rs
92.15% <57.14%> (-3.93%)
:arrow_down:

src/meta/name.rs
94.85% <75.55%> (+1.05%)
:arrow_up:

src/meta/date.rs
98.79% <95.45%> (+5.53%)
:arrow_up:

... and 15 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b6bd1d3...38a6933. Read the comment docs.

I'm closing this PR for now as it has deviated quite a bit from master, but let me know if you are still interested in this and we can open it back up.


Error "Unsequenced modification and access" when building distribution from sources

Hello,
I'm trying to build the distribution from scratch from release 2.7 and Xcode 12.0.1, with the only change to default build parameters being the full list of supported architectures:
$ export J2OBJC_ARCHS="iphone simulator macosx iphone64 iphone64e watchv7k watch64 watchsimulator simulator64 appletvos appletvsimulator maccatalyst"
$ make dist

When it gets to the compilation of Striped64.m I get the following error:
compiling /Users/gbertani/j2objc-2.7/jre_emul/build_result/Classes/java/util/concurrent/atomic/Striped64.m
/Users/gbertani/j2objc-2.7/jre_emul/build_result/Classes/java/util/concurrent/atomic/Striped64.m:132:91: error:
      unsequenced modification and access to 'v' [-Werror,-Wunsequenced]
  ...v = JreLoadVolatileLong(&a->value_), (fn == nil) ? v + x : [((id<JavaUtilFunctionLongBinaryOperator>) nil_chk(fn...
       ^                                                ~
/Users/gbertani/j2objc-2.7/jre_emul/build_result/Classes/java/util/concurrent/atomic/Striped64.m:160:82: error:
      unsequenced modification and access to 'v' [-Werror,-Wunsequenced]
  ...v = JreLoadVolatileLong(&base_), (fn == nil) ? v + x : [((id<JavaUtilFunctionLongBinaryOperator>) nil_chk(fn)) a...
       ^                                            ~
2 errors generated.
make[1]: *** [/Users/gbertani/j2objc-2.7/jre_emul/build_result/objs-iphone/java/util/concurrent/atomic/Striped64.o] Error 1
make: *** [jre_emul_dist] Error 2

I have read both issues #338 and #343, but none of the suggestions worked:

First I tried fixing the expression as (v + x), but the error persisted.
Then I tried adding --extract-unsequenced to TRANSLATE_ARGS in translate.mk, then cleaning and rebuilding, but the error also persisted.

Any other suggestion?

One of the joys of being an Xcode developer is that with each release there's the chances that new clang  are added to what it considers the default set. For Xcode 12, this adds -Wunsequenced. While I generally support enabling all useful warnings, it's still a hassle when they arrive unannounced.
To fix any new warning that is breaking the build, take its name and prepend it with "no-". So in this case, the failing warning is "-Wunsequenced", and the workaround is to specify "-Wno-unsequenced". The j2objc build has a WARNINGS build variable, so to suppress this warning, build using:
    $ make -j8 dist WARNINGS=-Wno-unsequenced

The fix probably needs to be in the translator, as it looks to be literally translating an equivalent Java expression.
The issue (as I currently understand it) is that Java guarantees that parameter expressions are executed left-to-right (JLS <IP_ADDRESS>, but function parameters are not evaluated in a defined order in C/C++/ObjC. I think the right fix is for the translator to pull out the local variable assignment (v = a.value), and move it into block with the rest of the expression. That screws up the "else if" chain, though, so the rest of the chain also needs to move into the block (original Java, but this is a translator change):
             wasUncontended = true;      // Continue after rehash
-        else if (a.cas(v = a.value,
-                       (fn == null) ? v + x : fn.applyAsLong(v, x)))
-            break;
-        else if (n >= NCPU || cells != as)
-            collide = false;            // At max size or stale
-        else if (!collide)
-            collide = true;
-        else if (cellsBusy == 0 && casCellsBusy()) {
-            try {
-                if (cells == as)        // Expand table unless stale
-                    cells = Arrays.copyOf(as, n << 1);
-            } finally {
-                cellsBusy = 0;
-            collide = false;
-            continue;                   // Retry with expanded table
-        }
+        else {
+            v = a.value;
+            if (a.cas(v,
+                           (fn == null) ? v + x : fn.applyAsLong(v, x)))
+                break;
+            else if (n >= NCPU || cells != as)
+                collide = false;            // At max size or stale
+            else if (!collide)
+                collide = true;
+            else if (cellsBusy == 0 && casCellsBusy()) {
+                try {
+                    if (cells == as)        // Expand table unless stale
+                        cells = Arrays.copyOf(as, n << 1);
+                } finally {
+                    cellsBusy = 0;
+                }
+                collide = false;
+                continue;                   // Retry with expanded table
+             }
+         }
        h = advanceProbe(h);

Do you see a simpler change? Replacing the vs with a.value won't work, since it's possible for a.value to be changed by a different thread:
             wasUncontended = true;      // Continue after rehash
-        else if (a.cas(v = a.value,
-                       (fn == null) ? v + x : fn.applyAsLong(v, x)))
+        else if (a.cas(a.value,
+                       (fn == null) ? a.value + x : fn.applyAsLong(a.value, x))) // a.value may have 3 different values
             break;

Another possibility is to extract the whole boolean expression into a private boolean method:
             wasUncontended = true;      // Continue after rehash
-        else if (a.cas(v = a.value,
-                       (fn == null) ? v + x : fn.applyAsLong(v, x)))
+        else if (__f(a, fn, x))
             break;
...
+    private boolean __f(Cell a, LongBinaryOperator fn, long x) {}
+        long v = a.value;
+        return a.cas(v, (fn == null) ? v + x : fn.applyAsLong(v, x));
+    }

Hmm, that's starting to look like the same extraction done for capturing lambdas. Have to think about this some more...

Much simpler: it's a bug (uncaught edge case) in UnsequencedExpressionRewriter.

This is a damned hard problem, man. And besides, whoever wrote that code segment in the first place has no idea of what "readable code" means. It took me three full scans of the line to see the assignment of v.
What if instead of a property read it was a method call (such as v = a.next()) and it was used more than one time in the expression (such as if (a.cas(v = a.next(), (fn == null) ? v + x : fn.applyAsLong(v = a.next(), x)))) ? The translator would have to decompose the expression as separate statements.
As a pragmatic guy, I would just send a PR to the Android team with the assignment moved before the test (and a commit message such as Ever heard of side effects?), and leave the translator as is.

The workaround to build with -Wno-unsequenced will enable your build until this is fixed.
FYI, pull request #1488 currently only fixes the pattern found in Striped64.java. With it, the build now fails on another hot mess (err, I mean complex expression 😉) in android/util/Base64.java:
    v = (((tailLen > 1 ? tail[t++] : input[p++]) & 0xff) << 10) |
        (((tailLen > 0 ? tail[t++] : input[p++]) & 0xff) << 2);

I think what happened in Xcode 12 is that clang's unsequenced warning support was significantly improved. So this is a good thing in the long run, as we need to improve the translator to match their error detection.

#1488 has been updated so the project now fully builds with Xcode 12.

Thank you very much for your prompt support!

Fixed in #1488.


Initials tests fails in current repo (2022-03)

This project looks awesome. Tried to implement it in my own project with inspiration from this repo. After some time of debugging I decided to run tests in this repo:
first time I run it:
❯ yarn test
yarn run v1.22.17
$ jest
 PASS  __tests__/ListWithFetch.test.tsx (11.019 s)
 PASS  __tests__/Counter.test.tsx (15.144 s)
 PASS  __tests__/CounterUsesCustomHook.test.tsx (15.282 s)
 FAIL  __tests__/LoginSubmission.test.tsx (15.342 s)
  ● renders correctly

    thrown: "Exceeded timeout of 5000 ms for a test.
    Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

      24 | })
      25 |
    > 26 | it('renders correctly', async () => {
         | ^
      27 |   const mockNavigate = jest.fn()
      28 |   // @ts-ignore
      29 |   useNavigation.mockImplementation(() => ({navigate: mockNavigate}))

      at Object.<anonymous> (__tests__/LoginSubmission.test.tsx:26:1)

 FAIL  __tests__/Login.test.tsx (15.305 s)
  ● renders correctly

    thrown: "Exceeded timeout of 5000 ms for a test.
    Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

       5 | import {expect, it, jest} from '@jest/globals'
       6 |
    >  7 | it('renders correctly', async () => {
         | ^
       8 |   const username = 'hi'
       9 |   const password = 'qwerty1234'
      10 |   let submittedData = {}

      at Object.<anonymous> (__tests__/Login.test.tsx:7:1)

 FAIL  __tests__/Video.test.tsx (15.456 s)
  ● renders/navigates throughout app screens

    thrown: "Exceeded timeout of 5000 ms for a test.
    Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

      11 | }
      12 |
    > 13 | it('renders/navigates throughout app screens', async () => {
         | ^
      14 |   const {getByText, getByA11yLabel} = render(
      15 |     <Video navigation={navigationMock} />,
      16 |   )

      at Object.<anonymous> (__tests__/Video.test.tsx:13:1)

 PASS  __tests__/EasyButton.test.tsx (16.765 s)
 FAIL  __tests__/FlatList.test.tsx (16.827 s)
  ● scrolls to top and refreshes all items

    thrown: "Exceeded timeout of 5000 ms for a test.
    Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

      30 | }
      31 |
    > 32 | it('scrolls to top and refreshes all items', async () => {
         | ^
      33 |   const {getByText, getByTestId} = render(<SectionList />)
      34 |
      35 |   getByText(/pizza/i)

      at Object.<anonymous> (__tests__/FlatList.test.tsx:32:1)

ReferenceError: You are trying to `import` a file after the Jest environment has been torn down. From __tests__/FlatList.test.tsx.

      at getNodeByText (node_modules/@testing-library/react-native/build/helpers/byText.js:53:9)
      at node_modules/@testing-library/react-native/build/helpers/byText.js:73:44
      at _findAll (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:17085:7)
      at ReactTestInstance.findAll (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:17012:12)
      at queryAllByTextFn (node_modules/@testing-library/react-native/build/helpers/byText.js:73:28)
 PASS  __tests__/Home.test.tsx (16.983 s)
 FAIL  __tests__/Modal.test.tsx (17.271 s)
  ● renders modal screen correctly

    thrown: "Exceeded timeout of 5000 ms for a test.
    Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

      14 | })
      15 |
    > 16 | it('renders modal screen correctly', async () => {
         | ^
      17 |   const {getByText} = render(<ModalScreen />)
      18 |
      19 |   expect(() => getByText(/hello world/i)).toThrow(

      at Object.<anonymous> (__tests__/Modal.test.tsx:16:1)

ReferenceError: You are trying to `import` a file after the Jest environment has been torn down. From __tests__/Modal.test.tsx.

      at getNodeByText (node_modules/@testing-library/react-native/build/helpers/byText.js:53:9)
      at node_modules/@testing-library/react-native/build/helpers/byText.js:73:44
      at _findAll (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:17085:7)
      at ReactTestInstance.findAll (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:17012:12)
      at queryAllByTextFn (node_modules/@testing-library/react-native/build/helpers/byText.js:73:28)
A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks.
Test Suites: 5 failed, 5 passed, 10 total
Tests:       5 failed, 11 passed, 16 total
Snapshots:   1 passed, 1 total
Time:        18.333 s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

second time I run it

I'm quite confused now 🤔

@Norfeldt Sounds like a cold start, if you have an idea how to solve this you are welcome to create a PR.


Z dimension parameter sweep visualization and results

Similar to #119 - here are several visualizations and a write up about these results. Probably best to track in z_dimensions_hyperparameter_sweep_results.md.

@gwaygenomics Can you make the palettes for your figures a bit more colorblind-friendly (see: https://github.com/clauswilke/colorblindr)? I probably should have brought this up in #119, too. I think the colors in the loss figures here are particularly important for interpretation.

Thanks @jaclyn-taroni - I've updated the color palette of this pull request. I will save updating the color palette of #119 for a later date (in discussing with @cgreene it actually may make sense for that to live in the CZI project repo)
I also addressed all other comments. thanks again!


DAM-514	 SV Mosaic Clean-up (Chris UI Task) -- Conflicts Fixed

Feel free to rebase, I'm a bit of a rebase noob and didn't want to risk breaking things. Let me know if you guys have any questions, thanks!

Rolled in manually. Closing.


Low risk message during active infection

Avoid duplicates

[ x] Bug is not mentioned in the FAQ
[ x] Bug is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in the documentation repository
[x ] Bug is not already reported in another issue

Technical details

Device name: Huawei P30 Pro
Android version: 10
EMUI Version: 11
App version: 2.16.2

Describe the bug

Push notification of lowered risk during active infection. Might be confusing.
Steps to reproduce the issue

Get red warning
Get infected and activate positive test in App
Let 14 days pass after step 1

Expected behaviour

No message of "low risk" during infection.
Possible Fix
Check infection status before sending message.

Additional context

@MikeMcC399 wrote:

After the infection is known about, the person is expected to isolate. Once the person has recovered and is mixing with other people again, then exposure logging can be reactivated. See FAQ How do I tell the app that I recovered from COVID-19?.

A little note to keep it from getting too easy:
Quarantine is no longer necessary in all cases, so the previous conclusion that a 'positive' tested person is in quarantine (self-isolation) for a period of time or until a negative test is available is no longer unconditionally valid at the moment.
See: "Gemäß Bund-Länder-Beschluss vom 7. Januar 2022 sind folgende geimpfte und genesene Personen von dieser Quarantänepflicht für Kontaktpersonen befreit..."  /  "According to the federal-state decision of January 7, 2022, the following vaccinated and recovered people are exempt from this quarantine obligation for contact persons...".

@Jo-Achim
Are you sure? I think if you yourself are tested positive, you have to isolate.
Only contact persons don't have to under some circumstances.

It is right: actually "contakt persons". But are these contacts less contagious?
Sorry, but this is a little confusing.

@Jo-Achim
As @Ein-Tim pointed out, this is about infected people, not simply contact people.
Just go to your link https://www.infektionsschutz.de/coronavirus/fragen-und-antworten/quarantaene-und-isolierung/#tab-5057-4 and read the first entry:

Sorry and thanks @MikeMcC399, then I'll delete my posts.

@dsarkar I consider this as a bug and not as an enhancement request. I will open a bug report soon.

Hey @heinp, we have mirrored the abovementioned bug report by @Ein-Tim into our internal tickets and attached this issue as well. Thanks for your efforts!

Corona-Warn-App Open Source Team

Android PR: https://github.com/corona-warn-app/cwa-app-android/pull/4938

This has been fixed in version 2.20 and should be closed now @heinp.


Problem in running flutter web page or web application

HERE IS THE CODES CONTAINING THE ERRORS DISPLAY UNDER THE TERMINAL IN VISUAL STUDIO CODED
flutter packages pub global run webdev serve
webdev could not run for this project.
You must have a dependency on `build_runner` in `pubspec.yaml`.
# pubspec.yaml
dev_dependencies:
  build_runner: >=1.6.2 <2.0.0
You must have a dependency on `build_web_compilers` in `pubspec.yaml`.
# pubspec.yaml
dev_dependencies:
  build_web_compilers: >=1.2.0 <3.0.0
You have a dependency on `cupertino_icons` which is not supported for flutter_web tech preview. See https://flutter.dev/web for more details.
You have a dependency on `flutter` which is not supported for flutter_web tech preview. See https://flutter.dev/web for more details.
You have a dependency on `flutter_test` which is not supported for flutter_web tech preview. See https://flutter.dev/web for more details.
pub finished with exit code 78

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.


Kernel installation error on Debian 12.5

Describe the bug
Running the script, first prompts for installation of the custom kernel.  After accepting [Y] the script indicates that this may take some time, howeer after about 3 seconds displays "Error: Failed to install kernel".  Upon inspection, I cannot seem to access the Github aritfact for the debian-kernel.zip through the nightly.link (script can't either).
Boardname
Nightfury

I haven't done the greatest job at maintaining that kernel, I just updated it so after github actions builds it, the link should work again.

Just trying to get this to work myself.  Doesn't seem to be working yet but I'm stoked that you're more or less on top of fixing it WeirdTreeThing.

It will take about an hour for CI to build the kernel.

Hello,
does not work again with debian 12.7 :( same error message

I just started another build


Add filtering of director resources in summary API

Ignoring faulty director resources which may not contain necessary information. (These reources might be dummies created for testing)

Pull Request Test Coverage Report for Build 3377

4 of 5 (80.0%)  changed or added relevant lines in 1 file are covered.
14 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 89.718%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

api-controllers/ServiceFabrikAdminController.js
4
5
80.0%

Files with Coverage Reduction
New Missed Lines
%

api-controllers/ServiceFabrikAdminController.js
14
70.38%

Totals

Change from base Build 3374:
-0.1%

Covered Lines:
9386

Relevant Lines:
10108

💛  - Coveralls


Use Babili?

Some packages can't be minified with Uglify, e.g. Preact, due to their use of ES2015 that Uglify doesn't support. While I don't think we should default to Babili, maybe we could fall back to it.

May be related: I just tried https://github.com/monfera/crosslink - which uses rollup - with the awesome packd and it indeed didn't minify (it minifies locally with the devDependency rollup-plugin-babili when doing an npm build).

Unfortunately Babili is a bit too slow to be used in this context, so I'm working on an alternative: https://butternut.now.sh/?version=0.4.3&gist=23e0931a09f412fd26c8bf7a3b85da05
There's also uglify-es which was released the other day — is basically the 'harmony' branch of the Uglify project

Wow, thanks for the pointer! Also, here's wishing that the Google Closure devs will eventually support ES2015 as an optional output as it can be quite compact.


Fix error when no Web.config transforms are available

Fixes an issue raised by PR #36 raised by @luuksommers. That PR fixed the symptom, but did so by disabling transforms when IncludeHelixWebConfigTransformInPackage was disabled.
This PR adds some additional checks and only performs the merged transform if there are valid helix transforms or if there is a standard transform and IncludeHelixWebConfigTransformInPackage is enabled.

Works like a charm! TY!


Support instances where bookmarks have no created date

Closes: #56
Closes: #47
For reasons that I don't quite understand, it is possible for highlights to have an empty DateCreated field which causes October to fail to parse those highlights.
This PR checks the contents of that field and if it's empty, it attempts to use DateModified which, as far as I understand, is the date that a highlight is last edited and should roughly match DateCreated.
If DateModified doesn't exist, it'll do a further fallback and just use today's date.
Should that somehow fail, it'll throw up the error that it was before but that shouldn't really be possible.

Originally I thought this might be something to do with purchased books but those are actually processed just fine.

Looking at my own bookmarks, it is possible to have no DateModified but the highlights of mind that have no modified field always have a DateCreated field. The instance that both are missing is probably pretty rare but this should handle it either way.


Improves back-quote names in Scala file wizard UI.

Fixes Assembla ticket 1002662 (https://app.assembla.com/spaces/scala-ide/tickets/realtime_list?tickets_report_id=u1427663&page=1&ticket=1002662&tab=activity).
Side-note: I signed the Typesafe CLA some days ago, so that part should be OK. I have also tried to follow the guidelines for contributing.

LGTM. Thanks for the contribution!


Add support for API versioning

I like the versioning support in Grape, and I would like to imitate that in Restivus. However, in lieu of keeping things as DRY as possible, I love the concept of allowing cascading between different versions of the API, so a route could choose to use a v1 endpoint if the v2 endpoint at the same path is not implemented. This would prevent users from having to duplicate code to copy a v1 endpoint over to their v2 API.
Here's a great write-up on API versioning.
Phase 1 of the implementation will likely only support basic URL path versioning with no cascading (this implementation is nearly complete on a local branch of mine, but it needs a ton of doc updates to match the new API), but at least it's a start. This is definitely an API-breaking change, as Restivus will export the Restivus class, instead of the singleton object that is currently being exported. This small change brings some huge conveniences with it, such as being able to separately configure as many different APIs or versions of an API as you see fit, instead of being limited to the single set of configuration options. This is all heavily borrowed from the Grape style of API definition, which I'm a fan of.

[x] Export Restivus class instead of "singleton" object
[x] Add an API config option for the version

Here's what I've sketched up for the API so far:
API
api/api.coffee
Api = {}

api/v1.coffee
Api.V1 = new Restivus
  version:
    name: 'v1'
    type: 'path'
  useAuth: true
  prettyJson: true
  defaultHeaders:
    'Content-Type': 'text/plain'

# Maps to api/v1/users
Api.V1.addCollections Meteor.users

# Maps to api/v1/custom
Api.V1.addRoute 'custom',
  get: ->
    'get'

api/v2.coffee
Api.V2 = new Restivus
  version:
    name: 'v2'
    type: 'queryParam'
    paramName: 'version'
  enableCors: false

# Maps to /api/custom?version=v2
Api.V2.addRoute 'custom',
  get: ->.
    data: 'get'

Resolved in 604fad94c7010f1ef83060e41f2f6c0280c55707


incompatible issue: Node 14 unsupported warning

Please tell us about your environment:

winston version?

[ ] winston@3
[x] winston@2

node -v outputs:

> node -v
v14.2.0

Operating System? (Windows, macOS, or Linux) Ubuntu 18.04(wsl 1)
Language? (all | TypeScript X.X | ES6/7 | ES5 | Dart) all

What is the problem?

while start program, have a warning showed.
i. node --trace-warnings core.js
ii. show the blow
(node:26972) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
    at emitCircularRequireWarning (internal/modules/cjs/loader.js:817:11)
    at Object.get (internal/modules/cjs/loader.js:831:5)
    at Object.exports.setLevels (/mnt/d/Programs/Hitokoto_Api/node_modules/winston/lib/winston/common.js:35:14)
    at Object.<anonymous> (/mnt/d/Programs/Hitokoto_Api/node_modules/winston/lib/winston.js:83:8)
    at Module._compile (internal/modules/cjs/loader.js:1176:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Module.load (internal/modules/cjs/loader.js:1040:32)
    at Function.Module._load (internal/modules/cjs/loader.js:929:14)
    at Module.require (internal/modules/cjs/loader.js:1080:19)
    at require (internal/modules/cjs/helpers.js:72:18)

What do you expect to happen instead?

with no warning
Other information

Cause it seems like it's not going to be fixed/merged anytime soon and I really don't want to migrate to winston@3, I've created forked npm package - https://www.npmjs.com/package/winston24. This is just<EMAIL_ADDRESS>with fix for this warning applied and bumped to version 2.4.5. Published from this branch: https://github.com/rysenko/winston/commits/2.x

Fixed via https://github.com/winstonjs/winston/pull/1800 and a 2.4.5 release should be cut shortly.  Thanks.  Consider upgrading to winston 3 which is maintained and tested against the latest Node versions.

Kind reminder to release 2.4.5 with said fix.

I'm still facing this issue, ive updated to @2.4.5 in my node modules and reinstalled, it still crashes but with no warning this time


Error Could not parse annotation as a boolean faced when I apply CSV with the helm annotation

Open by @camilamacedo86 on behalf of @dian-xh..
Bug Report
What did you do?
I tried with the new 0.17.1 image by updating just the [CSV's alm-examples](https://github.com/IBM/ibm-elastic-stack-operator/pull/28/files#diff-3caf33bfc5f95f8178d06cf53ea2032cR8] , and still seeing this issue https://github.com/operator-framework/operator-sdk/issues/2884 when parsing the annotation boolean:
cr managed by helm operator:
    "metadata": {
      "name": "test",
      "annotations": {
        "helm.operator-sdk/upgrade-force": "True"
      }

What did you expect to see?
No error to parse the boolean value of the annotation helm.operator-sdk/upgrade-force
What did you see instead? Under which circumstances?
log:
{"level":"info","ts":1590607171.116301,"logger":"helm.controller","msg":"Could not parse annotation as a boolean","annotation":"helm.operator-sdk/upgrade-force","value informed":"True"}
{"level":"info","ts":1590607171.9757097,"logger":"helm.controller","msg":"Updated release","namespace":"test","name":"logging","apiVersion":"myapi","kind":"MyType","release":"test","force":false}

Hi @dian-xh,
I tried to reproduce this issue with the Helm Memcached sample and I could not.

More info :

Update the Dockerfile

+++ b/helm/memcached-operator/build/Dockerfile
@@ -1,4 +1,4 @@
-FROM quay.io/operator-framework/helm-operator:v0.17.0
+FROM quay.io/operator-framework/helm-operator:v0.17.1

Build a new image and push it
Update the operator..yaml to use the image
Run make install(also I edit the CR and re-applied it)
Check the logs

$ kubectl logs deployment.apps/memcached-operator -n helm-memcached
{"level":"info","ts":1590754606.7678878,"logger":"cmd","msg":"Go Version: go1.13.11"}
{"level":"info","ts":1590754606.7681026,"logger":"cmd","msg":"Go OS/Arch: linux/amd64"}
{"level":"info","ts":1590754606.768189,"logger":"cmd","msg":"Version of operator-sdk: v0.17.1"}
{"level":"info","ts":1590754606.7683802,"logger":"cmd","msg":"Watching single namespace.","Namespace":"helm-memcached"}
{"level":"info","ts":1590754607.0757995,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":"<IP_ADDRESS>:8383"}
{"level":"info","ts":1590754607.0773816,"logger":"helm.controller","msg":"Watching resource","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","namespace":"helm-memcached","reconcilePeriod":"1m0s"}
{"level":"info","ts":1590754607.0776536,"logger":"leader","msg":"Trying to become the leader."}
{"level":"info","ts":1590754607.3994594,"logger":"leader","msg":"No pre-existing lock was found."}
{"level":"info","ts":1590754607.4085946,"logger":"leader","msg":"Became the leader."}
{"level":"info","ts":1590754608.0403354,"logger":"metrics","msg":"Metrics Service object created","Service.Name":"memcached-operator-metrics","Service.Namespace":"helm-memcached"}
{"level":"info","ts":1590754608.3438456,"logger":"cmd","msg":"Could not create ServiceMonitor object","Namespace":"helm-memcached","error":"no ServiceMonitor registered with the API"}
{"level":"info","ts":1590754608.3439016,"logger":"cmd","msg":"Install prometheus-operator in your cluster to create ServiceMonitor objects","Namespace":"helm-memcached","error":"no ServiceMonitor registered with the API"}
{"level":"info","ts":1590754608.3447654,"logger":"controller-runtime.manager","msg":"starting metrics server","path":"/metrics"}
{"level":"info","ts":1590754608.3447938,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"memcached-controller","source":"kind source: cache.example.com/v1alpha1, Kind=Memcached"}
{"level":"info","ts":1590754608.4464653,"logger":"controller-runtime.controller","msg":"Starting Controller","controller":"memcached-controller"}
{"level":"info","ts":1590754608.4465282,"logger":"controller-runtime.controller","msg":"Starting workers","controller":"memcached-controller","worker count":1}
{"level":"info","ts":1590754609.1012099,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"memcached-controller","source":"kind source: /v1, Kind=Service"}
{"level":"info","ts":1590754609.2019699,"logger":"helm.controller","msg":"Watching dependent resource","ownerApiVersion":"cache.example.com/v1alpha1","ownerKind":"Memcached","apiVersion":"v1","kind":"Service"}
{"level":"info","ts":1590754609.203353,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"memcached-controller","source":"kind source: apps/v1, Kind=StatefulSet"}
{"level":"info","ts":1590754609.3057506,"logger":"helm.controller","msg":"Watching dependent resource","ownerApiVersion":"cache.example.com/v1alpha1","ownerKind":"Memcached","apiVersion":"apps/v1","kind":"StatefulSet"}
{"level":"info","ts":1590754609.3058193,"logger":"helm.controller","msg":"Installed release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
+---
+# Source: memcached/templates/svc.yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: example-memcached
+  namespace: helm-memcached
+  labels:
+    app.kubernetes.io/name: memcached
+    helm.sh/chart: memcached-3.2.2
+    app.kubernetes.io/instance: example-memcached
+    app.kubernetes.io/version: "1.5.20"
+    app.kubernetes.io/managed-by: Helm
+  annotations:
+    {}
+spec:
+  clusterIP: None
+  ports:
+  - name: memcache
+    port: 11211
+    targetPort: memcache
+  selector:
+    app.kubernetes.io/name: memcached
+    app.kubernetes.io/instance: example-memcached
+---
+# Source: memcached/templates/statefulset.yaml
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: example-memcached
+  namespace: helm-memcached
+  labels:
+    app.kubernetes.io/name: memcached
+    helm.sh/chart: memcached-3.2.2
+    app.kubernetes.io/instance: example-memcached
+    app.kubernetes.io/version: "1.5.20"
+    app.kubernetes.io/managed-by: Helm
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: memcached
+      app.kubernetes.io/instance: example-memcached
+  serviceName: example-memcached
+  replicas: 3
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: memcached
+        app.kubernetes.io/instance: example-memcached
+    spec:
+      securityContext:
+        fsGroup: 1001
+      affinity:
+        podAntiAffinity:
+          preferredDuringSchedulingIgnoredDuringExecution:
+          - weight: 5
+            podAffinityTerm:
+              topologyKey: "kubernetes.io/hostname"
+              labelSelector:
+                matchLabels:
+                  app.kubernetes.io/name: memcached
+                  app.kubernetes.io/instance: example-memcached
+      containers:
+      - name: example-memcached
+        image: memcached:1.5.20
+        imagePullPolicy: ""
+        securityContext:
+          runAsUser: 1001
+        command:
+        - memcached
+        - -m 64
+        - -o
+        - modern
+        - -v
+        ports:
+        - name: memcache
+          containerPort: 11211
+        livenessProbe:
+          tcpSocket:
+            port: memcache
+          initialDelaySeconds: 30
+          timeoutSeconds: 5
+        readinessProbe:
+          tcpSocket:
+            port: memcache
+          initialDelaySeconds: 5
+          timeoutSeconds: 1
+        resources:
+          requests:
+            cpu: 50m
+            memory: 64Mi
+  updateStrategy:
+    type: RollingUpdate

{"level":"info","ts":1590754609.9776785,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754621.9137206,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754632.3375094,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754638.0783367,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754669.86279,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754730.4137583,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754790.964735,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754851.5273356,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754912.0747244,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}
{"level":"info","ts":1590754972.6277704,"logger":"helm.controller","msg":"Reconciled release","namespace":"helm-memcached","name":"example-memcached","apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","release":"example-memcached"}

Following some questions for we try to figure out it.

(Just to confirm). You are using the CSV to install your project. However, did you built and push a new image/tag and then updated the CSV with? Note that, the CSV will use the image:tag declared on it and you will only get the fix if you built a new image of the operator and push it.

NOTE: I checked that the CR of your project has NOT the annotation. So, I understand that you are adding it manually in the CSV. I'd recommend you keep the CR filled with the expected values and use SDK tool, see that SDK will use the CR specified values to generated/update the CSV's alm-examples.

Let's try to troubleshoot it: Could you try to check if you are able to face the same issue by following the docs and adding the annotation in the CR and then, by running just the operator as standalone? I mean, just applying its artefacts and not the CSV. Please, let us know if it worked or not.

I  tried to test your project https://github.com/IBM/ibm-elastic-stack-operator and it does not work for me. I am facing other issues by following its README

#- kubectl apply -f deploy/operator.yaml -n ibm-common-services
kubectl apply -f deploy/olm-catalog/ibm-elastic-stack-operator/3.1.2/ibm-elastic-stack-operator.v3.1.2.clusterserviceversion.yaml -n ibm-common-services
error: unable to recognize "deploy/olm-catalog/ibm-elastic-stack-operator/3.1.2/ibm-elastic-stack-operator.v3.1.2.clusterserviceversion.yaml": no matches for kind "ClusterServiceVersion" in version "operators.coreos.com/v1alpha1"
make: [Makefile:176: install] Error 1 (ignored)

It is very hard to try help by looking in the projects that we do not know how should work. Could you please try to reproduce this issue with the Helm Memcacahced sample and share all steps require for we are able to follow up?

Following some observations based on my trial to run your project. It is important to highlight that it is not related to the issue, however, I am here just trying to help by sharing some thoughts.

` See:`

I do not get why in the readme you ask for exec make build. The operator will use the image that is declared into the operator.yaml and then, if you build an image locally and not push to the registry it will not be used at all.

By looking at your makefile install target shows that you apply all + CSV. Note that if you are using the CSV the roles and etc are defined on it. OLM requires crds and CSV only.

(Personal opinion) I am as a developer would expect to be able to run the project as standalone. For example, the make install would apply all that is required for the operator to be deployed successfully without CSV/OLM or at least have an option for that.

Also, I could not just to install the operator artefacts to test it. Shows that the CR has not the examples/common values filled. See:

$  kubectl apply -f deploy/crds/elasticstack.ibm.com_v1alpha1_elasticstack_cr.yaml -n ibm-common-services
The ElasticStack "example-elasticstack" is invalid:
* spec.elasticsearch.client.tolerations: Invalid value: "object": spec.elasticsearch.client.tolerations in body must be of type array: "object"
* spec.elasticsearch.data.tolerations: Invalid value: "object": spec.elasticsearch.data.tolerations in body must be of type array: "object"
* spec.elasticsearch.master.tolerations: Invalid value: "object": spec.elasticsearch.master.tolerations in body must be of type array: "object"
* spec.kibana.tolerations: Invalid value: "object": spec.kibana.tolerations in body must be of type array: "object"
* spec.filebeat.tolerations: Invalid value: "object": spec.filebeat.tolerations in body must be of type array: "object"
* spec.curator.tolerations: Invalid value: "object": spec.curator.tolerations in body must be of type array: "object"
* spec.logstash.tolerations: Invalid value: "object": spec.logstash.tolerations in body must be of type array: "object"

Note that you do not need to do  export WATCH_NAMESPACE= in the makefile. See that the WATCH_NAMESPACE is defined in the operator.yaml and it will be replicated to the CSV content as well when the file is generated by the tool.

 imagePullPolicy: Always
          env:
            - name: WATCH_NAMESPACE
              value: ""
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: OPERATOR_NAME
              value: "elastic-stack-operator"

I hope that it helps you with.

@dian-xh is this still an issue for you? If so can you add some specific info that wasn't in #2884.

Hi @@dian-xh,
Could you check the above comment? Was it helpful fo you solve the issue?  if not, @dian-xh Could you please provide the steps required for we reproduce it (If possible in the  Helm Memcacahced sample)?

@camilamacedo86 thanks for creating the ticket. let me clarify the annotation related issue (and apologize for any confusion ). what have been observed with the new 0.17.1 image is that the "helm.operator-sdk/upgrade-force": "True" annotation not picked up by the operator after this annotation being added to an existing cr, so the sequence to reproduce:

create cr managed by helm operator without "helm.operator-sdk/upgrade-force": "True" annotation
use oc annotate to add annotation
operator log will still show:

{"level":"info","ts":1591134522.5391254,"logger":"helm.controller","msg":"Updated release","namespace":"my-ns","name":"test","apiVersion":"v1","kind":"MyTest","release":"test","force":false}

@joelanford do you see any reason why a CR annotation wouldn't be retrieved in subsequent reconciliation, as described above?

Hi @dian-xh,
So, your problem is not with the parse at all as described in #2884. My guess is that the CR has not the annotation yet. So, let's check it.
Your log:
{"level":"info","ts":1591134522.5391254,"logger":"helm.controller","msg":"Updated release","namespace":"my-ns","name":"test","apiVersion":"v1","kind":"MyTest","release":"test","force":false}
See that we can check in the log that the "force":false from here.
Could you please ensure that the reconciled CR has the annotation as True? Following some commands to help you with. Could you please verify and let us know?

To get all CR's of some kind (E.g memcacheds.cache.example.com )

$ kubectl get memcacheds.cache.example.com  -n helm-memcached
NAME                AGE
example-memcached   15m

Then see that it is added as False

$ kubectl edit memcacheds.cache.example.com example-memcached -n helm-memcached
apiVersion: cache.example.com/v1alpha1
kind: Memcached
metadata:
  annotations:
    helm.operator-sdk/upgrade-force: "False"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","metadata":{"annotations":{"helm.operator-sdk/upgrade-force":"False"},"name":"example-memcached","namespace":"helm-memcached"},"spec":{"AntiAffinity":"soft","affinity":{},"extraContainers":"","extraVolumes":"","image":"memcached:1.5.20","kind":"StatefulSet","memcached":{"extendedOptions":"modern","extraArgs":[],"maxItemMemory":64,"verbosity":"v"},"metrics":{"enabled":false,"image":"quay.io/prometheus/memcached-exporter:v0.6.0","resources":{}},"nodeSelector":{},"pdbMinAvailable":2,"podAnnotations":{},"replicaCount":3,"resources":{"requests":{"cpu":"50m","memory":"64Mi"}},"securityContext":{"enabled":true,"fsGroup":1001,"runAsUser":1001},"serviceAnnotations":{},"tolerations":{},"updateStrategy":{"type":"RollingUpdate"}}}

Now, let's overwrite the value with True and the annotations command

 $ kubectl annotate memcacheds.cache.example.com example-memcached --overwrite helm.operator-sdk/upgrade-force="True" -n helm-memcached
memcached.cache.example.com/example-memcached annotated

Now, let's ensure that it is True:

$ kubectl edit memcacheds.cache.example.com example-memcached -n helm-memcached
apiVersion: cache.example.com/v1alpha1
kind: Memcached
metadata:
  annotations:
    helm.operator-sdk/upgrade-force: "True"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"cache.example.com/v1alpha1","kind":"Memcached","metadata":{"annotations":{"helm.operator-sdk/upgrade-force":"False"},"name":"example-memcached","namespace":"helm-memcached"},"spec":{"AntiAffinity":"soft","affinity":{},"extraContainers":"","extraVolumes":"","image":"memcached:1.5.20","kind":"StatefulSet","memcached":{"extendedOptions":"modern","extraArgs":[],"maxItemMemory":64,"verbosity":"v"},"metrics":{"enabled":false,"image":"quay.io/prometheus/memcached-exporter:v0.6.0","resources":{}},"nodeSelector":{},"pdbMinAvailable":2,"podAnnotations":{},"replicaCount":3,"resources":{"requests":{"cpu":"50m","memory":"64Mi"}},"securityContext":{"enabled":true,"fsGroup":1001,"runAsUser":1001},"serviceAnnotations":{},"tolerations":{},"updateStrategy":{"type":"RollingUpdate"}}}

I am looking for your position.

Hi @dian-xh,
Also, I will complement here with the test done with the Memcached Helm Sample to ensure that it working. Following the steps.

I deployed the Memcached Sample with:

apiVersion: cache.example.com/v1alpha1
kind: Memcached
metadata:
  name: example-memcached
  "annotations": {
    "helm.operator-sdk/upgrade-force": "False"
  }

I updated the annotation after check that all was running successfully as described in its Readme.
Then, I updated the annotation helm.operator-sdk/upgrade-force with True

 $ kubectl annotate memcacheds.cache.example.com example-memcached --overwrite helm.operator-sdk/upgrade-force="True" -n helm-memcached
memcached.cache.example.com/example-memcached annotated

I checked that the CR was updated properly:

And then, change the CR spec  replicaCount: 3  to  replicaCount: 2:

See that the force was used as expected:

So, I am closing this one since:

We could confirm that you are no longer facing the parse issue after use 0.17.1
That helm.operator-sdk/upgrade-force: "True"  will be used ("force":true ) when the CR be updated properly with the annotation.

Please, feel free to ping us or raise a new issue if you still needing help with.

@camilamacedo86 thanks for the update. your test updated the replica, which is not an immutable field. this is not a good test for the --force option, since it will pass even without
with further tests today, it appears the --force behavior in the 0.17.1 base image is backwards. I'd like to share the following observations:

cr a managed by helm without helm.operator-sdk/upgrade-force annotation
make an updates to cr to trigger the following changes one at a time:
a. updating replica
b. changing memory limit
c. changing resource labels
all 3 cases are updated properly by operator (pods are recreated as needed)
annotate pr to turn on --force:
oc annotate elasticstack/logging "helm.operator-sdk/upgrade-force"="True"
repeat changes in step 2, helm operator start to fail

{"level":"error","ts":1591299355.1403763,"logger":"controller-runtime.controller","msg":"Reconciler error","controller":"elasticstack-controller","request":"ibm-common-services/logging","error":"failed update (failed to replace object: Job.batch \"logging-elk-elasticsearch-pki-init\" is invalid: [spec.selector: Required value, spec.template.metadata.labels: Invalid value: map[string]string{\"app\":\"logging-elk-elasticsearch\", \"app.kubernetes.io/instance\":\"common-logging\", \"chart\":\"ibm-icplogging\", \"component\":\"secret-init\", \"heritage\":\"Helm\", \"release\":\"logging\", \"role\":\"initialization\"}: `selector` does not match template `labels`, spec.selector: Invalid value: \"null\": field is immutable, spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:\"\", GenerateName:\"\", Namespace:\"\", SelfLink:\"\", UID:\"\", ResourceVersion:\"\", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{\"app\":\"logging-elk-elasticsearch\", \"app.kubernetes.io/instance\":\"common-logging\", \"chart\":\"ibm-icplogging\", \"component\":\"secret-init\", \"heritage\":\"Helm\", \"release\":\"logging\", \"role\":\"initialization\"}, Annotations:map[string]string{\"productID\":\"068a62892a1e4db39641342e592daa25\", \"productMetric\":\"FREE\", \"productName\":\"IBM Cloud Platform Common Services\", \"productVersion\":\"3.4.0\"}, OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:\"\", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:core.PodSpec{Volumes:[]core.Volume(nil), InitContainers:[]core.Container(nil), Containers:[]core.Container{core.Container{Name:\"kubectl\", Image:\"quay.io/opencloudio/logging-pki-init@sha256:d73cbc2895486c425bde39497b10e00fd45b550e4953eb8d3e04c1ac3936b4a8\", Command:[]string(nil), Args:[]string(nil), WorkingDir:\"\", Ports:[]core.ContainerPort(nil), EnvFrom:[]core.EnvFromSource(nil), Env:[]core.EnvVar{core.EnvVar{Name:\"APP_NAME\", Value:\"logging-elk-elasticsearch\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CHART_NAME_VERSION\", Value:\"ibm-icplogging-3.1.3\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"COMPONENT_NAME\", Value:\"secret-init\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"HERITAGE\", Value:\"Helm\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"ROLE_NAME\", Value:\"initialization\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"RELEASE_NAME_LABEL\", Value:\"logging\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"RELEASE_NAME\", Value:\"logging-elk\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"REQUIRED_CERT_ENTRY_COUNT\", Value:\"21\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CA_KEYSTORE_PASSWORD\", Value:\"Y2hhbmdlbWU=\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CA_TRUSTSTORE_PASSWORD\", Value:\"Y2hhbmdlbWU=\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"APP_KEYSTORE_PASSWORD\", Value:\"Y2hhbmdlbWU=\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT1_NAME\", Value:\"sgadmin\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT1_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_NAME\", Value:\"kibana\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_SAN\", Value:\"dns:kibana,dns:kibana.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_KEY_FORMAT\", Value:\"pkcs8\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_NAME\", Value:\"logstash\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_SAN\", Value:\"dns:logstash,dns:logstash.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_KEY_FORMAT\", Value:\"pkcs8\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT4_NAME\", Value:\"logstash-monitoring\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT4_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT5_NAME\", Value:\"logstash-elasticsearch\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT5_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT6_NAME\", Value:\"filebeat\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT6_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT6_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_NAME\", Value:\"curator\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_SAN\", Value:\"dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_KEY_ENCRYPTION\", Value:\"false\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT8_NAME\", Value:\"superuser\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT8_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT8_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT9_NAME\", Value:\"elasticsearch\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT9_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT9_SAN\", Value:\"dns:elasticsearch,dns:elasticsearch.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT10_NAME\", Value:\"elasticsearch-transport\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT10_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT10_SAN\", Value:\"dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_NAME\", Value:\"kibanarouter\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_SAN\", Value:\"dns:kibana,dns:kibana.ibm-common-services\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_NAME\", Value:\"elasticsearch-router\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_SAN\", Value:\"dns:elasticsearch,dns:elasticsearch.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_DN\", Value:\"CN=elasticsearch,OU=IBM Cloud Private\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_KEY_ENCRYPTION\", Value:\"false\", ValueFrom:(*core.EnvVarSource)(nil)}}, Resources:core.ResourceRequirements{Limits:core.ResourceList{\"memory\":resource.Quantity{i:resource.int64Amount{value:536870912, scale:0}, d:resource.infDecAmount{Dec:(*inf.Dec)(nil)}, s:\"\", Format:\"BinarySI\"}}, Requests:core.ResourceList{\"memory\":resource.Quantity{i:resource.int64Amount{value:67108864, scale:0}, d:resource.infDecAmount{Dec:(*inf.Dec)(nil)}, s:\"\", Format:\"BinarySI\"}}}, VolumeMounts:[]core.VolumeMount(nil), VolumeDevices:[]core.VolumeDevice(nil), LivenessProbe:(*core.Probe)(nil), ReadinessProbe:(*core.Probe)(nil), StartupProbe:(*core.Probe)(nil), Lifecycle:(*core.Lifecycle)(nil), TerminationMessagePath:\"/dev/termination-log\", TerminationMessagePolicy:\"File\", ImagePullPolicy:\"IfNotPresent\", SecurityContext:(*core.SecurityContext)(0xc00a2f25f0), Stdin:false, StdinOnce:false, TTY:false}}, EphemeralContainers:[]core.EphemeralContainer(nil), RestartPolicy:\"Never\", TerminationGracePeriodSeconds:(*int64)(0xc02e767960), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:\"ClusterFirst\", NodeSelector:map[string]string(nil), ServiceAccountName:\"logging-elk-job\", AutomountServiceAccountToken:(*bool)(nil), NodeName:\"\", SecurityContext:(*core.PodSecurityContext)(0xc03f6df420), ImagePullSecrets:[]core.LocalObjectReference(nil), Hostname:\"\", Subdomain:\"\", Affinity:(*core.Affinity)(nil), SchedulerName:\"default-scheduler\", Tolerations:[]core.Toleration{core.Toleration{Key:\"dedicated\", Operator:\"Exists\", Value:\"\", Effect:\"NoSchedule\", TolerationSeconds:(*int64)(nil)}}, HostAliases:[]core.HostAlias(nil), PriorityClassName:\"\", Priority:(*int32)(nil), PreemptionPolicy:(*core.PreemptionPolicy)(nil), DNSConfig:(*core.PodDNSConfig)(nil), ReadinessGates:[]core.PodReadinessGate(nil), RuntimeClassName:(*string)(nil), Overhead:core.ResourceList(nil), EnableServiceLinks:(*bool)(nil), TopologySpreadConstraints:[]core.TopologySpreadConstraint(nil)}}: field is immutable]) and failed rollback: failed to replace object: Job.batch \"logging-elk-elasticsearch-pki-init\" is invalid: [spec.selector: Required value, spec.template.metadata.labels: Invalid value: map[string]string{\"app\":\"logging-elk-elasticsearch\", \"app.kubernetes.io/instance\":\"common-logging\", \"chart\":\"ibm-icplogging\", \"component\":\"secret-init\", \"heritage\":\"Helm\", \"release\":\"logging\", \"role\":\"initialization\"}: `selector` does not match template `labels`, spec.selector: Invalid value: \"null\": field is immutable, spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:\"\", GenerateName:\"\", Namespace:\"\", SelfLink:\"\", UID:\"\", ResourceVersion:\"\", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{\"app\":\"logging-elk-elasticsearch\", \"app.kubernetes.io/instance\":\"common-logging\", \"chart\":\"ibm-icplogging\", \"component\":\"secret-init\", \"heritage\":\"Helm\", \"release\":\"logging\", \"role\":\"initialization\"}, Annotations:map[string]string{\"productID\":\"068a62892a1e4db39641342e592daa25\", \"productMetric\":\"FREE\", \"productName\":\"IBM Cloud Platform Common Services\", \"productVersion\":\"3.4.0\"}, OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:\"\", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:core.PodSpec{Volumes:[]core.Volume(nil), InitContainers:[]core.Container(nil), Containers:[]core.Container{core.Container{Name:\"kubectl\", Image:\"quay.io/opencloudio/logging-pki-init@sha256:d73cbc2895486c425bde39497b10e00fd45b550e4953eb8d3e04c1ac3936b4a8\", Command:[]string(nil), Args:[]string(nil), WorkingDir:\"\", Ports:[]core.ContainerPort(nil), EnvFrom:[]core.EnvFromSource(nil), Env:[]core.EnvVar{core.EnvVar{Name:\"APP_NAME\", Value:\"logging-elk-elasticsearch\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CHART_NAME_VERSION\", Value:\"ibm-icplogging-3.1.3\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"COMPONENT_NAME\", Value:\"secret-init\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"HERITAGE\", Value:\"Helm\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"ROLE_NAME\", Value:\"initialization\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"RELEASE_NAME_LABEL\", Value:\"logging\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"RELEASE_NAME\", Value:\"logging-elk\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"REQUIRED_CERT_ENTRY_COUNT\", Value:\"21\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CA_KEYSTORE_PASSWORD\", Value:\"Y2hhbmdlbWU=\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CA_TRUSTSTORE_PASSWORD\", Value:\"Y2hhbmdlbWU=\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"APP_KEYSTORE_PASSWORD\", Value:\"Y2hhbmdlbWU=\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT1_NAME\", Value:\"sgadmin\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT1_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_NAME\", Value:\"kibana\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_SAN\", Value:\"dns:kibana,dns:kibana.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT2_KEY_FORMAT\", Value:\"pkcs8\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_NAME\", Value:\"logstash\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_SAN\", Value:\"dns:logstash,dns:logstash.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT3_KEY_FORMAT\", Value:\"pkcs8\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT4_NAME\", Value:\"logstash-monitoring\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT4_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT5_NAME\", Value:\"logstash-elasticsearch\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT5_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT6_NAME\", Value:\"filebeat\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT6_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT6_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_NAME\", Value:\"curator\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_SAN\", Value:\"dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT7_KEY_ENCRYPTION\", Value:\"false\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT8_NAME\", Value:\"superuser\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT8_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT8_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT9_NAME\", Value:\"elasticsearch\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT9_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT9_SAN\", Value:\"dns:elasticsearch,dns:elasticsearch.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT10_NAME\", Value:\"elasticsearch-transport\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT10_KEYSTORE\", Value:\"jks\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT10_SAN\", Value:\"dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_NAME\", Value:\"kibanarouter\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT11_SAN\", Value:\"dns:kibana,dns:kibana.ibm-common-services\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_NAME\", Value:\"elasticsearch-router\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_SAN\", Value:\"dns:elasticsearch,dns:elasticsearch.ibm-common-services,dns:localhost,ip:<IP_ADDRESS>\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_DN\", Value:\"CN=elasticsearch,OU=IBM Cloud Private\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_KEYSTORE\", Value:\"pem\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_KEY_FORMAT\", Value:\"pkcs1\", ValueFrom:(*core.EnvVarSource)(nil)}, core.EnvVar{Name:\"CERT12_KEY_ENCRYPTION\", Value:\"false\", ValueFrom:(*core.EnvVarSource)(nil)}}, Resources:core.ResourceRequirements{Limits:core.ResourceList{\"memory\":resource.Quantity{i:resource.int64Amount{value:536870912, scale:0}, d:resource.infDecAmount{Dec:(*inf.Dec)(nil)}, s:\"\", Format:\"BinarySI\"}}, Requests:core.ResourceList{\"memory\":resource.Quantity{i:resource.int64Amount{value:67108864, scale:0}, d:resource.infDecAmount{Dec:(*inf.Dec)(nil)}, s:\"\", Format:\"BinarySI\"}}}, VolumeMounts:[]core.VolumeMount(nil), VolumeDevices:[]core.VolumeDevice(nil), LivenessProbe:(*core.Probe)(nil), ReadinessProbe:(*core.Probe)(nil), StartupProbe:(*core.Probe)(nil), Lifecycle:(*core.Lifecycle)(nil), TerminationMessagePath:\"/dev/termination-log\", TerminationMessagePolicy:\"File\", ImagePullPolicy:\"IfNotPresent\", SecurityContext:(*core.SecurityContext)(0xc00f073630), Stdin:false, StdinOnce:false, TTY:false}}, EphemeralContainers:[]core.EphemeralContainer(nil), RestartPolicy:\"Never\", TerminationGracePeriodSeconds:(*int64)(0xc05be4ed60), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:\"ClusterFirst\", NodeSelector:map[string]string(nil), ServiceAccountName:\"logging-elk-job\", AutomountServiceAccountToken:(*bool)(nil), NodeName:\"\", SecurityContext:(*core.PodSecurityContext)(0xc045808bd0), ImagePullSecrets:[]core.LocalObjectReference(nil), Hostname:\"\", Subdomain:\"\", Affinity:(*core.Affinity)(nil), SchedulerName:\"default-scheduler\", Tolerations:[]core.Toleration{core.Toleration{Key:\"dedicated\", Operator:\"Exists\", Value:\"\", Effect:\"NoSchedule\", TolerationSeconds:(*int64)(nil)}}, HostAliases:[]core.HostAlias(nil), PriorityClassName:\"\", Priority:(*int32)(nil), PreemptionPolicy:(*core.PreemptionPolicy)(nil), DNSConfig:(*core.PodDNSConfig)(nil), ReadinessGates:[]core.PodReadinessGate(nil), RuntimeClassName:(*string)(nil), Overhead:core.ResourceList(nil), EnableServiceLinks:(*bool)(nil), TopologySpreadConstraints:[]core.TopologySpreadConstraint(nil)}}: field is immutable]","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tpkg/mod/github.com/go-logr/zapr@v0.1.1/zapr.go:128\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.5.2/pkg/internal/controller/controller.go:258\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.5.2/pkg/internal/controller/controller.go:232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.5.2/pkg/internal/controller/controller.go:211\nk8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\tpkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:152\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\tpkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:153\nk8s.io/apimachinery/pkg/util/wait.Until\n\tpkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:88"}`

annotate pr to turn off --force:
oc annotate elasticstack/logging "helm.operator-sdk/upgrade-force"="False"
helm operator back to normal, all resources updated
{"level":"info","ts":1591302627.458174,"logger":"helm.controller","msg":"Reconciled release","namespace":"ibm-common-services","name":"logging","apiVersion":"elasticstack.ibm.com/v1alpha1","kind":"ElasticStack","release":"logging"

please confirm this issue and reopen as needed. thanks!

Hi @dian-xh,
We started to check it with the issue Could not parse annotation as a boolean then, after that we verified that was missing the config in your test and now we are reading the third concern over its behaviour. For what/when/why be clear and allow us to help you with as have tracked the information in order to help others as well we need to have an issue for each scenario. And then, because of this, I raised a new issue instead of re-open this one. See: https://github.com/operator-framework/operator-sdk/issues/3185

@joelanford do you see any reason why a CR annotation wouldn't be retrieved in subsequent reconciliation, as described above?

@camilamacedo86 @estroz @dian-xh I think there was an issue that caused the helm-operator not to detect a re-reconcile when just the annotation changed. That should be fixed by #3039, which should be included in v0.18.0.
See https://github.com/operator-framework/operator-sdk/pull/3039#discussion_r424823700 . That discussion was about finalizers but I think it also applies to annotations (and anything else in the CR metadata)


Customize commenter name github-actions[bot]

The PR comment is posted as github-actions[bot]. This is also the sender name in notification email. It’ll be nice to be able to choose a different name, like “Test Report Bot”.
https://github.com/asarkar/build-time-tracker/pull/40

The name of the commenter is determined by the token used by the Github App that uses the Github API. This action is run by the Github App "Github Actions", hence the user name github-actions[bot].
I do not know how to turn this action into its own Github App, and whether that is worth the effort.

Related to #79.

@EnricoMi It's not clear how was this ticket completed. You referred to https://github.com/EnricoMi/publish-unit-test-result-action/issues/79, which doesn't have an associated PR either. Was any work actually done on this ticket or https://github.com/EnricoMi/publish-unit-test-result-action/issues/79? If not, then perhaps completed is a wrong status to use.


add tylerbenson as maintainer

Closes https://github.com/open-telemetry/opentelemetry-lambda/issues/848

Closing in fa


Make node/edge labels & property names case-insensitive

Having a person, Person, PERSON types of nodes and all of these meaning something different doesn't make a lot of sense.
The same could be said for property names.

Related: https://github.com/arturo-lang/arturo/commit/6c51de602d3fa63fd995d9724430ae853f9e6ca0

Ready to merge 🚀

Hm, I'd actually prefer having everything case-sensitive. The world is moving towards having things in IT case sensitive and adding some rules nobody remembers about case sensitivity doesn't sound really good to me.
How about making it easy for users to lowercase labels everywhere where it matters? Maybe some syntax support instead of using a function?

Hm, I'd actually prefer having everything case-sensitive. The world is moving towards having things in IT case sensitive and adding some rules nobody remembers about case sensitivity doesn't sound really good to me.
How about making it easy for users to lowercase labels everywhere where it matters? Maybe some syntax support instead of using a function?

I'm totally pro case-sensitivity, in general. I just thought it wouldn't make much in a graph db case, as I highlight above.
However, I must admit this design choice in particular has made me question myself since I made it.
Let me research a bit about it...

Actually I always thought of making a "meta structure" describing labels. At least some hierarchy (i.e. tree structure) of labels would be useful. But if I wanted to create such meta structure, I'll definitely want it to be case sensitive.
But maybe I'm misunderstanding what your motivation really is. Maybe you truly have some good reasons for this decision. I'm just out of ideas and have no clue what case insensitivity would help with (except for "negative" side effects like confusion to users, impossibility of having consistency - gets really bad once one starts to automate things and needs to precisely describe this "meta behavior" of the engine the automation is to interact with, etc.).

Actually I always thought of making a "meta structure" describing labels. At least some hierarchy (i.e. tree structure) of labels would be useful. But if I wanted to create such meta structure, I'll definitely want it to be case sensitive.
But maybe I'm misunderstanding what your motivation really is. Maybe you truly have some good reasons for this decision. I'm just out of ideas and have no clue what case insensitivity would help with [...]

Your comment was definitely food-for-thought.
So... I spent the weekend brainstorming and reading about it (especially how other graph databases handle it).
First of all, let me re-iterate that I have always been a total fan of case-sensitivity (and not the opposite). That being said, even Arturo itself (while in the general REBOL group, which promotes case-insensitivity) is totally case-sensitive.
Now, given that Grafito basically makes use of Arturo's syntax, the normal way to do things would be to follow its example. Why did I came up with idea of case-insensitive node-types and fields? Pretty much for what I mentioned in the initial message: to avoid confusion (and for the number of times I've seen a question along the lines of "How do I query WHERE person.name='something' OR person.Name='something' at the same time?"
So... I went on to see how others already do it.
If we have a look at the existing RDBMSs, the situation is a total mess. Most are case-insensitive, some are selectively case-insensitive, Oracle SQL is case-sensitive, and even with SQLite I've had some hard time figuring out what is going. As for Graph databases, the absolute norm is: case-sensitivity everywhere.
After all that and given that this decision of mine has already produced me more than one headache, I think I'm totally going to revert this change and go back to the former, already tried-and-proven model: case-sensitivity. Grafito, given that it is like Arturo++ actually, only for graph databases, is not any SQL-type of language. It's a full-blown general-purpose one. And as such, there are numerous ways we can do things, or force case-insensitivity for that matter, in case we want to. (we already have an option for db-wide "case-insensitivity" as a matter of fact, and this could even be specified - though not yet - on a per-query basis).
Regarding this:

except for "negative" side effects like confusion to users, impossibility of having consistency - gets really bad once one starts to automate things and needs to precisely describe this "meta behavior" of the engine the automation is to interact with, etc

what can I say. I couldn't agree more...
So, alea jacta est. 😉

Ok, very well. Thanks!

and this could even be specified - though not yet - on a per-query basis

Yes, this should cover the occasional verbose cases (this reminds me of me using grep -Ei sometimes - i.e. also per-query :wink:).


Sync machine labels

Sync machine labels.
Signed-off-by: Sophia Guo<EMAIL_ADDRESS>

I think we can go even a little further with this PR.  I have updated the labels on the adopt test machines, so we would no longer need an || for the label expression.

Reference: https://github.com/smlambert/openjdk-infrastructure/blob/labels/docs/jenkinslabels.md

Sorry, just realized that Reference: https://github.com/smlambert/openjdk-infrastructure/blob/labels/docs/jenkinslabels.md make it very clear about my former question.


[TODO]Before Fri Nov 22

Due date (eg. 2024.11.22)
Tasks

Database (NoSQL like MongoDB or SQL)
Error messages in Presenters
Accessibility-related features
Tests of all interactors

Meeting Time

2024.11.22, 7 PM

Notes

Hello, I tried to solve the issue.
This is what I did:
Added error messages for insufficient balance, stock not found, and validation exceptions in ExecuteBuyPresenter. Enhanced ExecuteBuyInteractorTest with additional test cases for error scenarios.
You can review changes in this commit: https://github.com/lattaai13/StockSim-StockSim-65/commit/0680818447182df96cf2ad6f1adda7691eea7bbd.

[!CAUTION]
Disclaimer: The commit was created by Latta AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

This issue was tried to solve for free by Latta AI - https://latta.ai/ourmission
If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.


fix prebuilds

Last thing that needs to be done is fixing the CI process.
Currently broken:

Windows

https://ci.appveyor.com/project/contra/node-gdal-next/builds/30755364/job/ib61kph7q13qrlwj#L1199

Linux

https://travis-ci.org/contra/node-gdal-next/builds/649559608

Currently working:

All mac builds

My last Linux build were sucessful:
https://travis-ci.org/jdesboeufs/node-gdal/builds/622911781
Maybe some changes to pick.
Will look at this ASAP.

@jdesboeufs Thanks! Really appreciate the help. I have been making tweaks to get the windows builds working and have it pretty close, probably needs another hour or two to finish it up - I'll take ownership of getting the windows builds finished up.

Update on this:

Travis CI: All builds are working except for Linux from source

I think the issue is linker related, not sure what's going on here yet - would appreciate some help. undefined symbol: OGRDXFLayer::TranslateMLEADER()
https://travis-ci.org/contra/node-gdal-next/builds/658023018

Appveyor: Some file functions are missing, cpl file is not valid

https://ci.appveyor.com/project/contra/node-gdal-next/builds/31224931/job/3tqm6c3gktmdmr35#L1148

Good news! Everything on travis is passing (Node 10/11/12/13) - even after doing a load of changes and upgrades to the build process (upgrading G++, moved around a lot of linker settings, etc.).
Only windows needs to be done now - still working on that.

More good news - just got windows working. All items on the roadmap are finished and this is ready to publish. https://ci.appveyor.com/project/contra/node-gdal-next/builds/31243623
@jdesboeufs Anything else you want to see or are we good to publish a v2.0.0 on the gdal-next package you own? Will just need to set up the prebuilt publishing S3 - I can pay for the storage if you'd like.


Error when starting cheat

After I finish typing in the aimbot key the cheat says started successfully but i get a Error, it says Expression: Vector subscript out of range  if you know how to fix please let me know!

I had a similar issue that had something to do with the arduino communication. Were you able to get that fixed?


README: Open R terminal with VS Code command palette

Currently we say to start an R terminal by clicking "R:(not attached)" (https://github.com/r-devel/r-dev-env/blob/main/README.md?plain=1#L92-L95). This is fine when working through the README from start to finish, but if you skip the section on running R and have not opened an R file then "R:(not attached)" may not be shown.
So we can change this to open the R terminal through the command palette:
Ctrl/Cmd + Shift +P
type "R terminal"
select "R: Create R terminal"

I recently switched back to Firefox and this shortcut opens a private window rather than opening the command palette.
So now I have to use F1 instead. Maybe we need a short note on how to find the right shortcut (it is shown in the View menu, there may be another way).

We could add a footnote about this in the docs, not urgent.


Spike - Strategy to switch from update to event based controller

Probably just push the events in the update at the beginning, and give a function to pump the events out (using a queue of controller events)


Litematica Mode after 1.0.5

In 1.0.5 it looks like you removed code related to the litematica mode for only breaking blocks that do not match a litematica schematic.
Was there a specific reason for removing this code, potentially elsewhere in the project that I just didnt see or fully know how its working?

hi sorry for the late reply, i believe there is still a setting for litematica which should do that

yeah just had a look, it checks if the schematicMismatches set contains the block position before breaking it

There is still a litematica setting in the correct versions but in newer releases it doesn't seem to work/function.

hm, thats odd, ill look into it

i know its been months (sorry) but the kotlin rewrite has been transferred to this repo finally. There arent any public builds yet as there are a few things that need fixing but if you know how, its in a very usable state if you wanted to build it yourself


docs(dev): Expose all internal webservers to the same ip

Jekyll now is exposed on <IP_ADDRESS>, which means that you can connect to
it through your machine ip. Webpack-dev-server was already doing it,
as well as the guard livereload.
All the instantsearch css, js and livereload are now loaded through
ugly document.write calls in dev mode, to be able to know which is
the current ip that is used to access the website.
This works both when testing locally on desktop, on mobile through the
same wifi network, and through an ngrok tunnel.

WFM thoughts @bobylito ?


Add bitwarden

Is it just getting into the link and hitting a delete button?

There are 2 ways:
1- If you know the password, log in and open account settings. There you'll find a delete button that deletes directly without sending a confirmation email.
2- If you don't remember the password, go to https://vault.bitwarden.com/#/recover-delete and enter your email.
You will receive a confirmation email with a link to delete your account.
Should I add this info as a note? It's already described in the link that I added.

Should I add this info as a note? It's already described in the link that I added.

No, if it's all in the link, no need to create redundancy

Thanks for your contribution!


Unable to execute 'run' task

I have a root project which uses the application plugin and sub-projects as dependencies. When I try to execute the run task, I got the following error:

09:37:21: Executing external task 'run'...
FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':run'.

Task with path 'compileRetrolambda' not found in root project 'dte-desktop'.

My plugins block (in root project):
plugins {
    id 'java'
    id 'application'
    id 'com.github.johnrengelman.shadow' version '1.2.3'
    id 'me.tatarka.retrolambda' version '3.2.5'
}

I don't know if it's a bug or an issue on my side, do you have any clue ?

Totally wrong project, sorry, wrong tab in Firefox :-)


update swiftMarkup to handle swift-cmark 0.29.0.gfm.7

Resolves rdar://104622777
https://github.com/apple/swift-cmark/pull/49 updates swift-cmark to include new upstream code from cmark-gfm, that fixes four CVEs in that library. However, that patch also includes a new API call to set up some global state that is required before you can call cmark code. This PR updates swiftMarkup to include this new call.

https://github.com/apple/swift-cmark/pull/49
@swift-ci Please test

Update: GitHub has since patched out the API breakage in cmark-gfm, so this PR is no longer needed.