[python][bug] GradingPrimary.contrast odd behavior.

Hello, yes me again, I'm sorry but seems this poor GradingPrimary class didn't get as much love as it should have.
This time I'm simply modifying the contrast attribute but I can't manage to get a result I can reproduce in Nuke, nor understand the logic behind GradingRGBM.
As mentioned in issue #1640 , some attribute require a GradingRGBM instance and other a float. But I don't understand why do we
need to specify a red/green/blue value when the output result observed doesn't change the overall "hue" at all but just act as a regular contrast on the 3 channels.
Even when modifying the master and attribute and leaving the r/g/b attributes at 1.0 (test_contrast_master), the result is still different than expected.
As always here are the following test suite I ran, expected values are computed from Nuke using the same 0.18 pivot.
The 2 last tests are with exposure to try to get the logic, but once again r/g/b give unexpected result while this time the master value
works as expected.
(Here only the last test test_exposure_master pass)
# python>3
import unittest
from pathlib import Path
from typing import Tuple

import PyOpenColorIO as ocio
import numpy
import numpy.testing

def make_img(color: Tuple[float, float, float]):
    """Create a 64x64 RGB image with the given color."""
    return numpy.full((64, 64, 3), color, dtype=numpy.float32)

class TestGradingPrimaryTransform(unittest.TestCase):

    config_path = Path(
        r"YOURCONFIG\config.ocio"
    )

    def setUp(self) -> None:
        self.config: ocio.Config = ocio.Config().CreateFromFile(str(self.config_path))
        self.img1 = make_img((0.5, 0.1, 0.1))
        self.gp: ocio.GradingPrimary = ocio.GradingPrimary(ocio.GRADING_LIN)
        return

    def tearDown(self) -> None:
        self.config = None
        self.img1 = None
        self.gp = None
        return

    def _apply_gp_on_img(self):

        tsfm_gp = ocio.GradingPrimaryTransform(
            self.gp,
            ocio.GRADING_LIN,
            False,
        )

        proc: ocio.Processor = self.config.getProcessor(tsfm_gp)
        proc: ocio.CPUProcessor = proc.getDefaultCPUProcessor()

        proc.applyRGB(self.img1)

        return

    def test_contrast_r(self):

        self.gp.contrast = ocio.GradingRGBM(0.1, 1.0, 1.0, 1.0)

        self._apply_gp_on_img()

        expected = make_img((0.22305, 0.1, 0.1))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

    def test_contrast_r_triggered(self):
        """
        Trying to see if contrast need to be manually triggered by another
        parameter change.
        """

        self.gp.contrast = ocio.GradingRGBM(0.1, 1.0, 1.0, 1.0)
        self.gp.clampBlack = 0.15

        self._apply_gp_on_img()

        expected = make_img((0.22305, 0.15, 0.15))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

    def test_contrast_rg(self):

        self.gp.contrast = ocio.GradingRGBM(0.1, 0.2, 1.0, 1.0)

        self._apply_gp_on_img()

        expected = make_img((0.22305, 0.04880, 0.1))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

    def test_contrast_rgb(self):

        self.gp.contrast = ocio.GradingRGBM(0.1, 0.2, 1.2, 1.0)

        self._apply_gp_on_img()

        expected = make_img((0.22305, 0.04880, 0.11965))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

    def test_contrast_master(self):

        self.gp.contrast = ocio.GradingRGBM(1.0, 1.0, 1.0, 0.66)

        self._apply_gp_on_img()

        expected = make_img((0.36858, 0.07372, 0.07372))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

    def test_exposure_rgb(self):

        self.gp.exposure = ocio.GradingRGBM(0.0, 0.2, 0.6, 1.0)

        self._apply_gp_on_img()

        expected = make_img((0.5, 0.11487, 0.15157))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

    def test_exposure_master(self):

        self.gp.exposure = ocio.GradingRGBM(0.0, 0.0, 0.0, 0.5)

        self._apply_gp_on_img()

        expected = make_img((0.70711, 0.14142, 0.14142))
        numpy.testing.assert_almost_equal(
            self.img1,
            expected,
            4,
            f"img1 is actually {self.img1[1][1]} while expected is {expected[1][1]}",
        )

if __name__ == "__main__":
    unittest.main()

I'm looking forward to seeing if this is a user error on this one or some bug.
CONTEXT: Windows10, OCIO 2.1.0
Cheers.
Liam.

Hey,
I'm continuing investigating on this issue.
I rebuild my test suite to check more cases :
# python>3
import unittest
from pathlib import Path
from typing import Tuple, Optional

import PyOpenColorIO as ocio
import numpy
import numpy.testing

def apply_contrast_linear(
    array: numpy.ndarray,
    contrast: Tuple[float, float, float],
    pivot: float,
) -> numpy.ndarray:
    r"""
    src\OpenColorIO\ops\gradingprimary\GradingPrimaryOpCPU.cpp#L180
    """
    pivot_actual = 0.18 * pow(2, pivot)
    return numpy.power(array / pivot_actual, contrast) * pivot_actual

def apply_contrast(
    array: numpy.ndarray,
    contrast: Tuple[float, float, float],
    pivot: float,
) -> numpy.ndarray:
    r"""
    src\OpenColorIO\ops\gradingprimary\GradingPrimaryOpCPU.cpp#L173
    """
    pivot_actual = 0.18 * pow(2, pivot)
    return (array - pivot_actual) * contrast + pivot_actual

def make_img(color: Tuple[float, float, float]):
    """Create a 64x64 RGB image with the given color."""
    return numpy.full((3, 3, 3), color, dtype=numpy.float32)

class TestGradingPrimaryTransformContrast(unittest.TestCase):

    config_path = Path(
        r"G:\personal\code\LiamImageProcessing\workspace\v0001\ImageProcessing-Liam\src\OCIOexperiments\dev\data\configs\AgXc-v0.1.4\config.ocio"
    )

    def setUp(self) -> None:

        self.config: ocio.Config = ocio.Config().CreateFromFile(str(self.config_path))
        self.img1 = make_img((0.5, 0.1, 0.1))

        self.gp: ocio.GradingPrimary = None
        self.style: ocio.GradingStyle = None
        self.contrast: Tuple[float, float, float, float] = (1.0, 1.0, 1.0, 1.0)
        self.pivot: float = 0.18
        self.set_gp_pivot = True

        return

    def tearDown(self) -> None:

        assert self.gp
        assert self.style

        self.gp.contrast = ocio.GradingRGBM(*self.contrast)
        if self.set_gp_pivot:
            self.gp.pivot = self.pivot
        else:
            self.pivot = self.gp.pivot

        if self.style == ocio.GRADING_LIN:
            expected = apply_contrast_linear(self.img1, self.contrast[:-1], self.pivot)
        elif self.style == ocio.GRADING_LOG:
            expected = apply_contrast(self.img1, self.contrast[:-1], self.pivot)

        result = self._get_gp_result()

        print(f"{'-'*50}\n{self.id()}\n\n{self.gp}\n")
        print(
            f"c={self.contrast}, p={self.pivot}(set={self.set_gp_pivot}), "
            f"style={self.style}\n\n"
        )
        print(f"expected={expected[1][1]}, result={result[1][1]}")

        numpy.testing.assert_almost_equal(
            result,
            expected,
            4,
            f"result is actually {result[1][1]} while expected is {expected[1][1]}",
        )

        self.gp = None
        self.config = None
        self.img1 = None
        self.style = None
        self.contrast = None
        self.pivot = None
        return

    def _get_gp_result(self) -> numpy.ndarray:

        tsfm_gp = ocio.GradingPrimaryTransform(
            self.gp,
            self.style,
            False,
        )

        proc: ocio.Processor = self.config.getProcessor(tsfm_gp)
        proc: ocio.CPUProcessor = proc.getDefaultCPUProcessor()

        out = self.img1.copy()
        proc.applyRGB(out)
        return out

    def test_contrast_r_lin(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.66, 1.0, 1.0, 1.0)
        self.pivot: float = 0.18

    def test_contrast_r_triggered_lin(self):
        """
        Trying to see if contrast need to be manually triggered by another
        parameter change.
        """

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.66, 1.0, 1.0, 1.0)
        self.pivot: float = 0.18
        self.gp.clampBlack = -150

    def test_contrast_r_lin_nop(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.66, 1.0, 1.0, 1.0)
        self.pivot: float = 0.18
        self.set_gp_pivot = False

    def test_contrast_rg_lin(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.1, 0.2, 1.0, 1.0)
        self.pivot: float = 0.18

    def test_contrast_rgb_lin(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.1, 0.2, 1.2, 1.0)
        self.pivot: float = 0.18

    def test_contrast_rgb_lin_nop(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.1, 0.2, 1.2, 1.0)
        # self.pivot: float = 0.18
        self.set_gp_pivot = False

    def test_contrast_rgb_log(self):

        self.style = ocio.GRADING_LOG
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.1, 0.2, 1.2, 1.0)
        self.pivot: float = 0.18

    def test_contrast_rgb_log_nop(self):

        self.style = ocio.GRADING_LOG
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (0.1, 0.2, 1.2, 1.0)
        # self.pivot: float = 0.18
        self.set_gp_pivot = False

    def test_contrast_master_lin(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (1.0, 1.0, 1.0, 0.66)
        self.pivot: float = 0.18

    def test_contrast_master_lin_nop(self):

        self.style = ocio.GRADING_LIN
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (1.0, 1.0, 1.0, 0.66)
        # self.pivot: float = 0.18
        self.set_gp_pivot = False

    def test_contrast_master_log(self):

        self.style = ocio.GRADING_LOG
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (1.0, 1.0, 1.0, 0.66)
        self.pivot: float = 0.18

    def test_contrast_master_log_nop(self):

        self.style = ocio.GRADING_LOG
        self.gp = ocio.GradingPrimary(self.style)
        self.contrast = (1.0, 1.0, 1.0, 0.66)
        # self.pivot: float = 0.18
        self.set_gp_pivot = False

if __name__ == "__main__":
    unittest.main()

Where the results are the following :
❌ test_contrast_r_lin
❌ test_contrast_r_triggered_lin
❌ test_contrast_r_lin_nop
❌ test_contrast_rg_lin
✅ test_contrast_rgb_lin
✅ test_contrast_rgb_lin_nop
❌ test_contrast_rgb_log
❌ test_contrast_rgb_log_nop
❌ test_contrast_master_lin
❌ test_contrast_master_lin_nop
❌ test_contrast_master_log
❌ test_contrast_master_log_nop
My hypothesis for now are:

specifying something other than the 3 RGB channels different from the default value doesn't trigger a change.
linear contrast formula is working but log one doesn't work : my implementation is wrong OR something buggy on OCIO side

But I have no more time for tonight. I will get back to it tomorrow and hopefully, I found something.
Stay tuned for ep03, cheers,
Liam.

Updated my code in the above comment. I indeed had some implementations issue of the contrast formula. Right now it should be a perfect copy/paste from the cpp implementation. This change my conclusions:
The issue
I can now suppose that there is indeed an issue in the implementation, I'm just not sure if this is intended or a mistake :
https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/b00877959f4497f9b8e5a08859d0ef8059fdd8e5/src/OpenColorIO/ops/gradingprimary/GradingPrimary.cpp#L192-L193
I assume in the above that it should be a logical AND and not an OR ? Because right now, as the unittest show if any of the GradingRGBM R-G-B  value is default, it is considered as an identity.
This issue can be found in the 3 Grading style.
Questions Left
This is not an issue but rather some knowledge missing on my side, but why does the contrast implementation is different between GRADING_LOG and GRADING_LIN ?
Is there some papers I can read that detail this implementation ?
Cheers.
Liam.

I assume in the above that it should be a logical AND and not an OR ? Because right now, as the unittest show if any of the GradingRGBM R-G-B value is default, it is considered as an identity.

I think you found the bug here.

This is not an issue but rather some knowledge missing on my side, but why does the contrast implementation is different between GRADING_LOG and GRADING_LIN ?

I think this is simply that a multiplication in linear maps to an addition in log space, same for the power and multiplication respectively. The contrast operator basically center the space on the pivot value then adjust the slope around that point. That is from my naive understanding on the implementation :)


Swipe between tabs

I implemeted this, I wanted to know how difficult it is to implement touch gestures and because TS has this issue, I tried it in TS. It's working, but the user experience is not the best. I can push my code ti my fork if you want to try it.

I pushed it into my TS-Fork, in branch main: https://github.com/qwerty287/Trail-Sense
It has an option in the settings and is disabled, you have to enable it and restart the app. Technically, it just recognizes a touch gesture with a library and compares the values for the x-coordinate - if it's enough, the tab switch is triggered. (The first commit is important, the second just adds the option in the preferences)

Any news on this?

Sorry, forgot to reply. While it is an interesting way of implementing this that bypasses some of the limitations of the architecture used, I'm not going to merge it into Trail Sense - 1 for the reason listed above (and hence why this issue hasn't been touched) and 2 because of some usability concerns - if this issue were to get done, I'm looking for view pager like behavior, but it gets tricky with some of the deeper navigation with tools. Even if both were resolved I'm still not sure I want it - some of these issues are community suggestions that I recorded and want to have around to consider in the future, but I may choose not to implement them.

Yes, I agree, I wouldn't implement this in my app. But I don't think that there's any other way to get this swipe between tabs - its just not the idea behind the layout with these tabs. (So I don't think this issue is fixable)

Agreed, I do think the swiping makes sense on the onboarding screen - but users only see that once so it's not a high priority

I'm not sure if it's useful on the onboarding screen.

As you said, users see this just once
What do you think, a user uses to go to the next page? The big button or the swipe, and there's no note that you can use the swipe? (I don't think any user would use the swipe option, even if there would be a note and a note like "you can use swipes to navigate through these onboarding pages" wouldn't be nice.)

Of course you can implement it - but I don't think anybody would use it.

No, I don't actually plan on modifying the onboarding screen - I just know that other apps use view pager there


Can not reference netstandard20 library in F# net471 console app

Repro steps

Create a F# console application, non-netcore, targeting netframework 4.7.1 in Visual Studio 2017 15.5.2

Add a netstandard20 class library (C# or F#) to the solution

Add a reference to one of the class libraries to the F# console app

Repro-Repo: https://github.com/hoetz/visualfsharpissueaddref
Expected behavior
The reference is added.
Actual behavior

Known workarounds
Manually edit the fsproj file to add the reference.
Visual Studio Version info dump
Microsoft Visual Studio Enterprise 2017
Version 15.5.2
VisualStudio.15.Release/15.5.2+27130.2010
Microsoft .NET Framework
Version 4.7.02556
Installed Version: Enterprise
Visual Basic 2017   00369-60000-00001-AA290
Microsoft Visual Basic 2017
Visual C# 2017   00369-60000-00001-AA290
Microsoft Visual C# 2017
Visual F# 4.1   00369-60000-00001-AA290
Microsoft Visual F# 4.1
Application Insights Tools for Visual Studio Package   8.10.01106.1
Application Insights Tools for Visual Studio
ASP.NET and Web Tools 2017   15.0.31125.0
ASP.NET and Web Tools 2017
ASP.NET Core Razor Language Services   1.0
Provides languages services for ASP.NET Core Razor.
ASP.NET Web Frameworks and Tools 2017   5.2.51007.0
For additional information, visit https://www.asp.net/
Azure App Service Tools v3.0.0   15.0.31106.0
Azure App Service Tools v3.0.0
Azure Data Lake Node   1.0
This package contains the Data Lake integration nodes for Server Explorer.
Azure Data Lake Tools for Visual Studio   2.2.9000.1
Microsoft Azure Data Lake Tools for Visual Studio
Azure Data Lake Tools for Visual Studio   2.2.9000.1
Microsoft Azure Data Lake Tools for Visual Studio
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Fabric.DiagnosticEvents   1.0
Fabric Diagnostic Events
JavaScript Language Service   2.0
JavaScript Language Service
JavaScript UWP Project System   2.0
JavaScript UWP Project System
Merq   1.1.17-rc (cba4571)
Command Bus, Event Stream and Async Manager for Visual Studio extensions.
Microsoft Azure HDInsight Azure Node   2.2.9000.1
HDInsight Node under Azure Node
Microsoft Azure Hive Query Language Service   2.2.9000.1
Language service for Hive query
Microsoft Azure Service Fabric Tools for Visual Studio   1.8
Microsoft Azure Service Fabric Tools for Visual Studio
Microsoft Azure Stream Analytics Language Service   2.2.9000.1
Language service for Azure Stream Analytics
Microsoft Azure Stream Analytics Node   1.0
Azure Stream Analytics Node under Azure Node
Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.51120.3
Microsoft Continuous Delivery Tools for Visual Studio   0.3
Simplifying the configuration of continuous build integration and continuous build delivery from within the Visual Studio IDE.
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers
Microsoft Visual Studio Tools for Containers   1.1
Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.
Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package
Mono Debugging for Visual Studio   4.8.4-pre (3fe64e3)
Support for debugging Mono processes with Visual Studio.
NuGet Package Manager   4.5.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.
SQL Server Data Tools   15.1.61710.120
Microsoft SQL Server Data Tools
ToolWindowHostedEditor   1.0
Hosting json editor into a tool window
TypeScript Tools   15.5.11025.1
TypeScript Tools for Microsoft Visual Studio
Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio
Visual Studio Tools for Universal Windows Apps   15.0.27128.01
The Visual Studio Tools for Universal Windows apps allow you to build a single universal app experience that can reach every device running Windows 10: phone, tablet, PC, and more. It includes the Microsoft Windows 10 Software Development Kit.
VisualStudio.Mac   1.0
Mac Extension for Visual Studio
WebJobs Tools v1.0.0   15.0.31106.0
WebJobs Tools v1.0.0
Xamarin   <IP_ADDRESS>3 (6575bd113)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin Designer   4.8.188 (c5813fa34)
Visual Studio extension to enable Xamarin Designer tools in Visual Studio.
Xamarin.Android SDK   <IP_ADDRESS> (HEAD/d8c6e504f)
Xamarin.Android Reference Assemblies and MSBuild support.
Xamarin.iOS and Xamarin.Mac SDK   <IP_ADDRESS> (6857dfc)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

I think you will have issues with 4.7.1 and .netstandard in general, not F# related.
But regarding this bug, it has been fixed. https://github.com/Microsoft/visualfsharp/pull/4096 . On next vs release it should be resolved.

Glad to see it's fixed. Since net471 has built in support for netstandard20 I hope there won't be any problems.


Phase acquisitions fail after changing MM ROI

recOrder tries to precompute, save, and reuse OTFs so that it doesn't needlessly recompute identical OTFs during each acquisition.
This functionality works well when there's a recOrder-side parameter change---the OTFs are recomputed correctly. However, the OTFs are not recomputed when we change the acquired ROI in MM, and the reconstruction will fail.
Steps to reproduce:

"Acquire Phase" from recOrder (OTF is computed and saved)
Change the ROI in MM
"Acquire Phase" from recOrder (OTF is not recomputed and recOrder errors with mismatched dimensions)

We can work around this bug by restarting recOrder so that the OTFs are computed from scratch.
I don't think this is a high-priority bug, but I think it should be handled correctly for 1.0.0.

I just ran into this bug again, so I'm escalating to 0.3.0.
The BFAcquisitionWorker._reconstructor_changed function do not track changes in x/y ROI size, so if you do a phase reconstruction, change the ROI size in MM, then attempt another phase reconstruction, you will get an error like:
ValueError: operands could not be broadcast together with shapes (258,492,21) (2048,2048,21)


🐛: Navigation between applications in topbar not working

Description

Selecting Handover just loads Mechanical Completion again
But going from Handover to Mechanical completion works

@Gustav-Eikaas This issue is history replace issue on Mechanical completion unmount. not a portal issue

Oh yeah, you're right. Will be fixed when MC and SWCR is finished. Which is soon. #638 #604


Angular throws exception on 4xx errors

See #316.  I think this should be reopened.
If you compare these (12 is an invalid id)
$http.get('http://localhost:8080/api/12')
    .then(function () {
        console.log('success');
    }, function () {
        console.log('error');
    });

Api.find('12')
    .then(function () {
        console.log('success');
    }, function () {
        console.log('error');
    });

Both of them also log this error to console
angular.js:9866 GET http://localhost:8080/api/12 400 (Bad Request)

But an exception at angular.js:11655 is only thrown by the adaptor.

So this issue is an issue to re-open another issue?
Can you describe exactly what resolution is desired?
Here's a plunker that runs your example code: http://plnkr.co/edit/UokC9c?p=preview
Do you have any insight into this stack trace?

The exception is thrown inside Angular, and then handled inside Angular (it just logs it). I'm not sure what I can do about it.

Yea sorry I was going to comment on the old issue but seeing as it's closed I wasn't sure if you would see it.
Desired behaviour imo would be the same as angular's default $http behaviour, eg just log an error to console when you get a 4xx response error.  Not throw an exception.  For me it's a problem as I display angular exceptions with toasts in my admin console, and frequently lookup invalid ids on my backend to see if they can be used...
Unfortunately after spending a lot of time digging around in the angular code I can't see a way to avoid it, although I don't have much experience so I could be missing something.  It looks like it's an intended consequence of returning $q.reject from the adaptor:
  function processQueue(state) {
    var fn, promise, pending;

    pending = state.pending;
    state.processScheduled = false;
    state.pending = undefined;

    for (var i = 0, ii = pending.length; i < ii; ++i) {
      promise = pending[i][0];
      fn = pending[i][state.status];
      try {
        if (isFunction(fn)) {
          // angular's $http rejected promise is handled here
          promise.resolve(fn(state.value));
        } else if (state.status === 1) {
          promise.resolve(state.value);
        } else {
          // angular-js-data's rejected promise is handled here
          promise.reject(state.value);
        }
      } catch (e) {
        promise.reject(e);
        // exception only gets thrown if using js-data
        exceptionHandler(e);
      }
    }
  }

try {
  if (isFunction(fn)) {
    promise.resolve(fn(state.value));
  } else if (state.status === 1) {
    promise.resolve(state.value);
  } else {
    // if it's handled here, then why do we get to the catch statement?
    promise.reject(state.value);
  }
} catch (e) {
  // how did we get here? What was synchronously thrown that this try-catch could have caught?
  promise.reject(e);
  // exception only gets thrown if using js-data
  exceptionHandler(e);
}

Ahh yea you're right there is more going on there.  After the else, it loops again and gets handled by the if with this function
  function (err) {
    if (resource) {
     delete resource.pendingQueries[id];
    }
    throw err;
  }

return DSUtils.Promise.reject(err); instead of throw err; appears to fix it.

An issue like this actually belongs on the js-data repo, since it's not a problem with js-data-angular. Closing in favor of js-data/js-data#101


Jbelaston/fix makefile implicit external download dependency

Quick fix of possible makefile error when running make with -jx
Be sure that external-download is well processed before PREFIX target.
More info in the commits description.

Isn't this only needed if you want vswhere to be downloaded by externals? Unless I'm mistaken, in the current state the venv doesn't require the dependencies to be downloaded.

Isn't this only needed if you want vswhere to be downloaded by externals? Unless I'm mistaken, in the current state the venv doesn't require the dependencies to be downloaded.

This was indeed the first intent but after consideration i think it can be good to globally consider external-dowload step as a prerequisite for entering in the env rather than specify it twice (for sxplayer and pkg-congif). What do you think ?
Or maybe your point is to make clear the real dependencies and not add implicit logic, and therefore, don't change the current behaviour ?

Isn't this only needed if you want vswhere to be downloaded by externals? Unless I'm mistaken, in the current state the venv doesn't require the dependencies to be downloaded.

This was indeed the first intent but after consideration i think it can be good to globally consider external-dowload step as a prerequisite for entering in the env rather than specify it twice (for sxplayer and pkg-congif). What do you think ?
Or maybe your point is to make clear the real dependencies and not add implicit logic, and therefore, don't change the current behaviour ?

(seen together with @cboesch-gpsw)
Finally, there is no need to do this change since there is no direct dependency between PREFIX and external-download targets.
sxplayer and pkg-config need to be download to be used so the they both have to explicit their dependency to external-download as it is done today.
I close this PR.


automatically publish docs with release builds

Currently this is done manually after tagging a release. We should get this process automated so it is more consistent, less error prone, and less of a burden.

Publish on merge is enabled for atlas-docs: Netflix/atlas-docs#2. So this aspect is done though spectator docs have not been migrated yet.


New version: Hugo.Hugo version 0.123.7

Pull request has been created with komac v2.1.1 :rocket:

For moderators
This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping Exorcism0666.

[!warning]
With the new version of Komac, numerous Pull Requests may contain bugs or unwanted elements. If such issues arise, please tag russellbanks so that these bugs can be addressed in future updates.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！

Automatic Validation ended with:

2024-03-01T19:08:36.0877792Z ##[error] Manifest Error: Required field missing. [NestedInstallerFiles] Manifest Error: Required field missing. [NestedInstallerFiles]

(Automated response - build 857.)

Close with reason: Duplicate of #141671;


Migrate components/analytics/system_analytics module to TypeScript

Summary

This converts the system_analytics component/module in web app to TypeScript.
Ticket Link

Fixes https://github.com/mattermost/mattermost-server/issues/16164

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

/update-branch

@jgilliam17 friendly reminder to help with a QA review :)

Thank you @Ampit and apologize for delay in getting to this PR
I am seeing an error on Site Statistics screen after upgrading license to Enterprise Edition. Can you please take a look? Thank you.

One more thing - I am not seeing all the values in the System Statistics
I compared with master.test server (first image), only top 6 values display on the PR server (bottom image)

@jgilliam17 Thanks for your review.
I'm not sure how i can check my code for enterprise edition on my local dev setup ?

I'm not sure how i can check my code for enterprise edition on my local dev setup ?

@nevyangelova or @Willyfrog would you be able to give guidance here? Thanks.

/update-branch

looking good! thanks @Ampit :)
I think it is good to test again @jgilliam17

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

/update-branch

/update-branch

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: 22e969f2fcafbf1389ad774f902d8a0ef24a3493

Pull Request successfully merged
SHA: 22e969f2fcafbf1389ad774f902d8a0ef24a3493


Callback after logging on with Google fails

I tried this setup with an empty web application, and it fails with a server error during the callback after logging on with Google.
My setup is a new web application, node 9, linux and then tried this setup. I have verified the the two properties to be configured on the Azure side and the endpoints to configure for the Google credentials

Dokumentinformasjon
⚠ Ikke rediger denne delen. Den kreves for koblingen docs.microsoft.com ➟ GitHub-problem.

ID: d2cd8333-b76f-bdee-f879-90cb47d20613
Version Independent ID: 9d2dec05-3ddb-d07e-323e-c86ff0616d3e
Content: How to configure Google authentication for your App Services application
Content Source: articles/app-service/app-service-mobile-how-to-configure-google-authentication.md
Service: app-service-mobile
GitHub Login: @mattchenderson
Microsoft Alias: mahender

@lindsve Thanks for the feedback! We are currently investigating and will update you shortly.

Hi @lindsve - I repro-d this issue and confirmed that there's 502 Bad Gateway error from nginx when https://yoursite.azurewebsites.net/.auth/login/google/callback is invoked during the sign-in process.
As such, I have assigned this issue to the author to investigate further and take the right course of action.

Thanks for the confirmation!

Any update on this?

I also got an error from nginx when callback was invoked. My app was a python flask app in a docker container. But I just did the tutorial on https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-python where you use a GIT-Repo. The real difference is that the example code implements a WSGI-interface. And I think nginx needs that to handle the authentication. With this code everything seems to work.

I'm trying to redirect the user back to the app after the OAuth finishes. The Azure's documentation on this subject is very poor.  I'm trying to add a AndroidManifest.xml to the res/native/android folder in the Apache Cordova Tools project. I figured I need to add "myapp://easyauth.callback" to metadata & map the redirect with an "intent-filter". Could you point me to the right syntax/method of doing this? Any help will be deeply appreciated. Thanks!

I also get a 502 error, mine is from Apache 2.4 running in a container.  The docs suggest this is simple to enable, but it appears maybe it doesn't work?

Hi, I am getting an Access denied error, even after doing all the setup.
"InnerException": {
"Message": "An error has occurred.",
"ExceptionMessage": "Access is denied",
"ExceptionType": "System.Net.HttpListenerException",
"StackTrace": "   at System.Net.HttpListener.SetupV2Config()\r\n   at System.Net.HttpListener.Start()\r\n   at Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.StartListener()\r\n   at Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.d__14.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext()"
}

I tired using this with Android. Error message shows "Unable to authorise user". Please help me solve this. I have done everything according to the documentation provided.


'Safe' object has no attribute 'get_contract'

Describe the bug
When trying to load the safe in a cli using safe-cli <checksummed_safe_address> <ethereum_node_url> command, it fails with AttributeError: 'Safe' object has no attribute 'get_contract'
To Reproduce

install the CLI
try to load a safe

Expected behavior
The safe loads fine

Full output:

~/projects/gnosis/safe-cli-test ❯ safe-cli 0xc61b9bb3a7a0767e3179713f3a5c7a9aedce193c https://mainnet.infura.io/v3/951c70103a18411db3f8285df6acf372                                      9s Py safe-cli-test 09:49:02
Traceback (most recent call last):
File "/Users/mmv/projects/gnosis/safe-cli-test/venv/bin/safe-cli", line 8, in
sys.exit(main())
File "/Users/mmv/projects/gnosis/safe-cli-test/venv/lib/python3.9/site-packages/safe_cli/main.py", line 146, in main
safe_cli = SafeCli()
File "/Users/mmv/projects/gnosis/safe-cli-test/venv/lib/python3.9/site-packages/safe_cli/main.py", line 49, in init
self.safe_operator = SafeOperator(safe_address, node_url)
File "/Users/mmv/projects/gnosis/safe-cli-test/venv/lib/python3.9/site-packages/safe_cli/operators/safe_operator.py", line 199, in init
self.safe_contract = self.safe.get_contract()
AttributeError: 'Safe' object has no attribute 'get_contract'

I can see that this line is updated on master. Can it be that the updated version is not pushed to PyPI yet?

Makes sense, thanks @mikhailxyz, I prepared a new release https://github.com/5afe/safe-cli/releases/tag/v0.5.0


Cross-platform support

It should be possible to make this game cross-platform. This would require using a different build system (e.g. CMake), as well as replacing uses of the windows API. From a brief view, it appears that it's only used for:

console rendering
input (with _getch)
sleeping (easily replaceable with std::this_thread::sleep_for)

Console input/output could possibly be replaced with ncurses/pdcurses. Alternatively, ncurses could be used on Linux while still having windows API on windows with ifdef's.

I'm currently working on this and have it almost ready to go.

Addressed by #57, #58 and #60. Thanks @joealam!


Utilize collationId for MySqlType Identification

Motivation:
varchar binary, the union of JSON and char binary columns are not being accurately mapped to the appropriate MySqlType.
Modification:
Use collationId(charset id) to identify mysql type.
Result:
Enhanced MySqlType Identification.
Resolves #91

need to change ColumnDefinition.toString()


x/tools/gopls: inconsistent semantic token types for type parameters

As example, the function has a generic typeParameter "T" and a parameter "target" .

Inside function, it check "target" as typeParameter that is error. Obviously "target" is a parameter.

And in the generic list, it check "T" as parameter, but in the parameter list, it check "T" as typeParameter. That is confusion

And my setting  of gopls.ui.semanticTokens is turning on.

@findleyr
yes, and inside the function body, "target" should be a parameter, not a typeParameter.

CC @pjweinb
I think it should be the other way around: target is a parameter, and T is a typeParameter (both in the type parameter list and parameter list).


Cgi integration updates

Added information on:

key rotation
mention removal of encryption headers from responses
correct "no performance penalty"
mention ApiVersions
SASL implications
coordinating proxy and broker with advertising property
State AES-GCM for initial version

@chris-giblin Does this replace the #19 PR?

@scholzj yes. My intention was to commit to the #19. Sorry, I may have goofed updating  the PR and created a new one. Please let me know if you prefer that I update #19. Apologies!

I can probably live with both ... @strimzi/maintainers WDYT?

@chris-giblin @scholzj I would stay with #19 and having the changes there. We already have discussions on that PR it would be bad losing those conversations which drove to changes and then having other discussions on this one.
@chris-giblin is it a big problem updating #19 with changes and closing this one? Thanks!

@ppatierno Will do!

Closing this PR. All discussion and changes are accessible in #19.


strange flashing under [at least] two distinct circumstances

Short description of the problem:
This is new behavior since the update to beta8.

Screen "flashes" just prior to pushing to another view. This happens if and only if (1) selecting from a list element in the current component that exceeds the viewable screen area (thus enabling scroll content), and (2) the target component depends on multiple providers that have dependencies of their own. (See demo).

Screen also "flashes" just prior to presenting an ActionSheet. This happens if and only if: selecting from a list element that exceeds the viewable screen area (thus enabling scroll content).

What behavior are you expecting? There should be no flash.
Steps to reproduce:

Check out this repo: https://github.com/MattDHill/listFlash
Run "ionic emulate iOS"
Click list item in "nav" tab to see navigation flashing.
Click list item in "action" tab to see action sheet flashing.

Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
It has been very difficult to pin down this bug. I still am not quite certain what exactly is causing the flashing during navigation. To reproduce, the list must definitely exceed the viewable screen area, but it's tough to nail down the second part. I think it happens when the target view depends on multiple providers that also depend on providers.
Which Ionic Version? 2.x
Run ionic info from terminal/cmd prompt: (paste output below)
Ionic Framework Version: 2.0.0-beta.8
Ionic CLI Version: 2.0.0-beta.25
Ionic App Lib Version: 2.0.0-beta.15
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.4.0
Xcode version: Xcode 7.3.1 Build version 7D1014

Hello, thanks for opening an issue with us! Does this only happen on ios, or on chrome and android too? Thanks for using Ionic!

Hi! I'm not sure if this happens on Andoid emulator or device as I don't have the ability to test that atm. But it works fine in the browser, both Chrome and Safari.

Having the same issue on ios but on Android for me.

Note: after some testing this seems to be isolated to ios. I cant seem to reproduce on any of my Android devices.

Hi @MattDHill,
I'm not sure what I'm supposed to be seeing, but here's how it looks on my iPhone.
https://drive.google.com/open?id=0B7Xofj71-_MbM0dONFA3ZUlLcFE
ActionSheet opening looks correct as well.  Note:  I did comment out your getLocation function so it looks like this:
getLocation() {
    /*let loading = Loading.create({
      content: 'Loading...'
    });
    this.nav.present(loading);

    this.locationService.getLocation()
      .subscribe(
        data => {
          this.location = data.location
        },
        err => {
          loading.dismiss()
          console.warn(err)
          alert("Error. Please try again later.")
        },
        () => {
          loading.dismiss()
        }
      );
      */
  }

I do see the ActionSheet flashing issue with UIWebView via Cordova.  I don't see it in Safari (WKWebView) so that's good news.  I don't see the Nav flashing issue in either.  I'll get started on the action sheet issue for now.

Hi, thanks for the followup. I have upgraded to Beta 9 and am still experiencing the flashing for (1) the list items (2) the action sheet and also (3) the ion-select component.
Here is a clip of the flashing when clicking on a list item. This is the exact same code as before, just with Beta 9 installed.
https://drive.google.com/open?id=0ByUf-mXWw8KcdUFUcFotWmhub2c
I assume the flashing in all three scenarios have the same underlying cause, so solving one will likely solve them all. Thanks again.

Hi @MattDHill,
Okay cool, I will take a look again.  I must have been doing something differently than you are in the video.
Thanks,
Dan

Hi @MattDHill this occurs only if the viewport can scrolling!

This seems to be related: https://github.com/driftyco/ionic/issues/6943

Hello @MattDHill can you reproduce this with a blank starter with scrolling content? I have been doing some testing on this and cant seem to reproduce on my iphone 5 or any of my Android devices.

I can definitely reproduce this, @jgw96.
Thanks,
Dan

Hi, here we go - follow the readme.
https://github.com/F1ow/ionic-alert-flicker
happens only on ios devices in my case

On Jun 27, 2016, at 6:27 PM, Justin Willis<EMAIL_ADDRESS>wrote:
Hello @MattDHill can you reproduce this with a blank starter with scrolling content? I have been doing some testing on this and cant seem to reproduce on my iphone 5 or any of my Android devices.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hello all! I just did some testing with our latest beta and am glad to report that i only see flashing with the action-sheet component now. I will be closing this issue and opening a new issue focused on the action sheet. I will link that new issue to this issue so that you guys can follow it. Thanks for using Ionic everyone!

Hi @jgw96 unfortunately I still have this issue with beta.10! Select and Alert component flicker.

@F1ow hmm i will definitely take another look at this. I am going to be testing an overlay component presentation refactor today that has the potential to fix this issue. I will get back to you with my findings. Thanks!

@F1ow alright, so after testing that overlay component refactor, i can confirm that this is fixed for good now. I will see if we can get a nightly release out with some directions on how to use the refactored overlay component api's soon so that you can try yourself. Thanks for being patient with me on this!

@jgw96 this flashing suddenly just reappeared on iOS after updating to iOS 10. Action menus, navigating, even clicking a toggle. Please reopen.

Hey guys. @jgw96, @danbucholtz. Any update on this. This flashing is still happening after upgrading to rc0. Happens for (at least) alerts, toggles and page navigation. Can you confirm you are seeing this as well?

I am seeing the screen flickering happen as on well RC0. Seems to happen 50% of the time.

Hey everyone, it would be great to see this in the RC1 milestones.

@MattDHill, can you reproduce in RC0?

@danbucholtz sure thing. Here is a repo demonstrating the issue when presenting both loading and alert components. But it also happens with action menus. This re-appreared after the iOS 10 update. Thanks for your help.
https://github.com/MattDHill/ScreenBlink

@MattDHill, Not sure if this will be RC 1 but I just showed the team videos of the flashing and we agree it is something we need to resolve ASAP.
Thanks,
Dan

Ok thanks. I'll keep my fingers crossed. While this is not a functional issue, it does make some basic actions look very amateur. You guys are awesome.

In the meantime, workaround:
IonicModule.forRoot(MyApp,  {
canDisableScroll: false
});

Thanks @manucorporat!

This should be fixed in next release RC2! Please feel free to reopen if the problem persist

Thanks @manucorporat!


[TimePicker] Got the clock handles working on Firefox.

Uses MouseEvent.layerX when MouseEvent.offsetX is not available (i.e. on Firefox 39 and before).

@hai-cea updated. :)

Thanks @martianboy


PHOENIX-5951 - Index rebuild output logging for past-max-lookback row…

…s should be configurable

@kadirozde - please take a look at the change to the IndexRebuildRegionScanner when you have a moment.
When testing the max lookback counters and output logging, I found that ONLY (and I assume BEFORE, AFTER and BOTH) rebuilds were being treated as NONEs because the IndexRebuildRegionScanner wasn't setting verifyType. I'm thinking this got introduced in PHOENIX-5928, but I'm confused why the IndexToolIT.testSecondaryIndex:308 check for the valid counter in a BEFORE rebuild didn't catch this.

@kadirozde - please take a look at the change to the IndexRebuildRegionScanner when you have a moment.
When testing the max lookback counters and output logging, I found that ONLY (and I assume BEFORE, AFTER and BOTH) rebuilds were being treated as NONEs because the IndexRebuildRegionScanner wasn't setting verifyType. I'm thinking this got introduced in PHOENIX-5928, but I'm confused why the IndexToolIT.testSecondaryIndex:308 check for the valid counter in a BEFORE rebuild didn't catch this.

I see that verifyType is set in the constructor. Please make sure to check the constructor in both IndexRebuildRegionScanner and its super class GlobalIndexRegionScanner.

I see that verifyType is set in the superclass constructor, if the Scan has the right attribute, as you say. But without manually setting it in the IndexRebuildRegionScanner, I was getting job counters with scan=2, rebuilt=2, and all other counters 0, even though it was an ONLY rebuild of an never-built index of a data table with 2 rows. Setting verifyType let the MISSING or BEYOND_MAX_LOOKBACK_AGE_MISSING counter be 2 as they should, depending on the age of the rows.
Could be a test bug on my part, or could be there's some code path where the Scan attribute isn't being set properly. I'll look further in the morning.

@kadirozde - figured out the problem. A previous rebase on this feature branch had re-introduced a private verifyType in IndexRebuildRegionScanner and that was masking the protected verifyType in the superclass. My test passes upon removing the extra verifyType.
Will get a new commit up and also submit to HadoopQA

OK, @swaroopak , fixed the test bug I mentioned to you and the real bug that revealed. It also now uses Configuration to verify.

@kadirozde - I believe I have addressed all your comments. (Thanks for pointing out the auto-complete errors where the wrong conf key was being used.)


updated r-hdf5r recipe for windows

Checklist

[X] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge/r , @ocefpaf Please consider this PR. This PR adds support to compile the official CRAN  package hdf5r on the Windows system.
Summarize what's changed:

Added support to compile hdf5r on Windows by adding the native gcc compiler to build requirement
Fixed license & added license file copied from hdf5r official repository as suggested by lint
Added conda-forge/r to maintainer list (seems like one of recent requirements for new recipes)

This proposed recipe adds more dependencies compared to the existing version. Some might not be necessary (for example r-bit). I think there is space to trim the dependent list. However, I would really appreciate if you could merge this PR first and then make adjustments later. There are quite a few packages waiting for this change ; )
Thanks

Awesome!


No way to declare setter/getter only in interfaces

export interface ITimer {
get isRunning():boolean;
start():void;
stop():void;
reset():void;
}
Why is this not working? This is the most logical thing anyone would expect. The value of the isRunning property should be changed, only inside the class instances. Otherwise anyone could change it outside, which is not good.

Use the readonly keyword instead of the get keyword:
export interface ITimer {
    readonly isRunning: boolean;
    start(): void;
    stop(): void;
    reset(): void;
}

Interfaces make no distinction between regular properties and accessor properties--it's an implementation detail left up to the implementer of the interface. As suggested above, use the readonly keyword to get the effect of a property that has only a get accessor.

Thanks.. I guess I'll have to get used to write "readonly" :)

@ahejlsberg
using readonly in this case is fine. But it make people confused.
readonly keyword normally indicate un-reassignable property. But in the interface, it declare type has that getter.
#11578

@dungdm93 But it is not reassignable, so it makes sense?

I'm trying to get the same working but i get an error:
Argument of type '{ ID: number; firstName: string; lastName: string; }' is not assignable to parameter of type 'IUser | undefined'.
  Type '{ ID: number; firstName: string; lastName: string; }' is not assignable to type 'IUser'.
    Property 'getRole' is missing in type '{ ID: number; firstName: string; lastName: string; }'.

import { UserRoles } from '@/enums/userRoles';

export interface IUser {
  ID?: number | null;
  firstName?: string;
  lastName?: string;
  role?: UserRoles;
  readonly getRole: string;
  readonly getFullName: string;
}

export class User implements IUser {

  public ID: number | null = null;
  public firstName: string = '';
  public lastName: string = '';
  public role: UserRoles = UserRoles.GUEST;

  constructor(user?: IUser) {
    if (user) {
      this.ID = user.ID ? user.ID : null;
      this.firstName = user.firstName ? user.firstName : '';
      this.lastName = user.lastName ? user.lastName : '';
      this.role = user.role ? user.role : UserRoles.GUEST;
    }
  }

  public get getRole(): string {
      return UserRoles[this.role];
  }
  public get getFullName(): string {
    return `${this.firstName} ${this.lastName}`;
  }
}

const user: User = new User({ ID: 1, firstName: 'Bruce', lastName: 'Wayne' });

@andre-dw you declared getRole and getFullName as required properties and then didn't provide them.


Cannot open macOS VM - limit exceeded

BEFORE SUBMITTING YOUR ISSUE, PLEASE LOOK AT THE PINNED ISSUES AND USE THE SEARCH FUNCTION TO MAKE SURE IT IS NOT ALREADY REPORTED. ALWAYS COMMENT ON AN EXISTING ISSUE INSTEAD OF MAKING A NEW ONE.
Describe the issue
I have searched the previous issues and found nothing about the VM limits for running macOS on UTM. As I understand there is a hard limit imposed by Apple to not allow more than 2 macOS VMs to run.
The issue I face is that when I shutdown my VM via the VM system, and UTM lists the VM as offline, I can still not re-launch it.
I receive the error:
Error
The number of virtual machines exceeds the limit. The maximum supported number of active virtual machines has been reached.

I have no other VMs running, I have quit the UTM app, and even checked Activity Monitor. The only way to reset the "count" is a system reboot.
I haven't been able to find anything on fixing this, or if there is an issue at the moment with the way shutting down doesnt minus a count number.
Configuration

UTM Version: 4.3.5(87)
macOS Version: 13.4.1 (c)
Mac Chip (Intel, M1, ...): MacBook Pro M2 Max

Is Virtual Machine Service still running? This is the actual process that runs the virtual machine. If you force quit that, does the issue resolve?

@ideologysec so I waited for the issue to occur again.
But, after using the VM all day yesterday today it now reports the error message.
Chronology
2023-08-18:

Used the macOS VM all day, internally rebooted a few times. No issues whatsoever

Notes:

physical mac machine did not go to sleep
physical mac machine did not have lid closed
physical mac machine did have screen go off / black throughout day

2023-08-18:

End of day, shutdown the macOS VM internally
Quit the UTM app
I put physical mac to sleep and closed the lid

2023-08-19:

Launch UTM, and tried to boot the macOS VM
Error message appears
Check activity monitor: no Virtual Machine Service present, UTM app is present

Notes:

attempted to sleep physical mac to replicate issue: did not seem to cause issue
attempted to close lid on physical mac to replicate issue: did not seem to cause issue
attempted to sleep and close lid on physical mac to replicate issue: did not seem to cause issue

At this point I can't replicate it, it just occurs at times without any UTM or Virtualisation services running.
I don't have any knowledge on collecting logs or ways to see what is occurring when I get the error message.

https://kb.parallels.com/128867
running more than two such VMs simultaneously is impossible.
Needs to be verified if this is an Apple Virtualization Framework limit.

Yes. Apple has hardcoded into the released OS' a check for how many macOS VMs are running at one time.
Here's a technical deep dive with more info:
https://khronokernel.github.io/macos/2023/08/08/AS-VM.html

For me, this is happening when NONE of my VMs are already running. It's now affecting both UTM and Parallels.

This is the same issue as I raised with #4257  - I would suggest there may be other issues reported that are also basically the same problem and maybe a bit of house cleaning is needed to merge them / close duplicates.
Anyhow, as far as I've been able to tell the Mac firmware tracks the active number of VMs somehow but somewhere along the line this tracking gets it wrong and it thinks there are still macOS Guest VMs running even though there aren't.
When I do run in to this issue (very rare now as I use the CLI tart utility instead of using UTM where I don't seem to run in to this problem), the easiest solution I've found is to log off the mac and back in again (a full reboot isn't required)

Same issue here with M1 MacBookPro running UTM 4.4.5(94) on MacOS Sonoma 14.4.


Child with null value throws error

Open this playground and check the console to get the error
https://formkit.link/8fcac0fde05a490bd19a5f7f966dd5fc
I don't think this is an expected behaviour.
The use case which lead me to find this bug  was the edition of an object article where the category is currently null

Thanks for filing this issue, the good news is this is fixed in the beta.7 tag which is available to install as the @next tag. Beta 7 will likely be released as the active version in just a few days if you prefer to wait.


Kanban project issue

https://github.com/users/Ezzywealth/projects/4
This team has just 2 people in it.

Hi @Ezzywealth,
Good job so far!
Highlights!

Descriptive pull request ✔

Hello ✋, you have done well reaching this point of the milestone 🤝 . But there are some issues that you still need to work on to go to the next project but you are almost there!
Status: Required Changes ♻⛔

[ ] Kindly add the other team member to this repo.

[ ] You have not assigned any of your tasks. Kindly choose who would be Student A ans Student B and ensure all tasks are assigned based on that, including the group tasks.
Your tasks should look like the image below when properly assigned.

Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread and tag me @julie-ify if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Hi @Ezzywealth and @aubinleyoung,
Great work on making the changes requested by a previous reviewer 👏
You've done well implementing some of the requested changes, but there are still some which aren't addressed yet.

Highlights

PR description is descriptive 👌

Required Changes ♻

As the previous review requested please ensure that all the tasks are assigned properly.

Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Hi @aubinleyoung and @Ezzywealth,
APPROVED 🟢
Highlights
✔ Descriptive PR
✔ Passing linters
✔ Good branch name
Great implementation of all the requirements in this milestone. 👏
You have done an amazing job 👍
Your project is complete!  There is nothing else to say other than... it's time to merge it. :shipit:
Congratulations! 🎉
CHEERS AND HAPPY CODING!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Wildcard and regular expressions only work with letters, not numbers.

When attempting to use a serial number with random numbers at the end of a fixed string as a keyword, neither the wildcard * or regex / are compatible with numbers preceding or following a search term. For example, if I attempted to use MM71.098.B as a term, the value MM71.098.BCD would be valid, but MM71.098.B99 would not.

This is what I see in the development console:

So far, so good! Some messages might pop up in the lower right box as you browse the web, just keep it open. Does anything appear when you click the check button of your Essay content?

This is what I see when I click the check button:

Okay, no error messages.
Are you using the latest development version here from github (that's what I assumed) or did you use the latest official version that's provided by the H5P hub? The latter doesn't have the regexp feature yet.

That explains the issue - thank you for your help! I was using the version available through the hub. Now I have an additional question - when attempting to upload and use version 1.1.2 I get these error messages:

What should I do to resolve them and use the newer version?

If you're trying to upload libraries, you'll have to do that on the library page of H5P, not in the content type hub (which is for content). However, since you're using WordPress, it's a little more tedious to use development versions.
The easiest and future-update-friendliest way probably is to replace the files in wp-content/uploads/h5p/libraries/h5p-essay with their counterparts in the archive that you downloaded and then delete the files in wp-content/uploads/h5p/cachedassets. You might need to do the same with h5p-text-utilities, and you might need to refresh your browser's cache (shift+F5).
In any case: You should not do this on a productive system if you're not sure what you're doing. Be sure to make a backup first.
Alternatively, just wait until one of my colleagues has finished the peer-review. There should be an official update shortly that you can download normally using the H5P content hub.

Thank you for your help! One more question - would it be possible to keep the keywords from being shown to the user in the feedback tab? I'd like to hide the regex and just show the feedback if possible.

Yes, in the latest version you can set the visibility to "keyword" / "alternative found" / "answer given" / "none" for each keyword group.
What are you actually using Essay for? That doesn't look like an educational scenario.

There's no support for regexp flags.

I'm using it to check the compatibility of serial numbers for different years of Mac laptops with solid state drives that I engineer - it probably seems very random, but your tool was the only one that I could find that had all of the functionality that I needed. Thanks again for answering my barrage of questions - I just subscribed to your Patreon! I really appreciate the help.

Sorry to bother you again, but where is the option to change the visibility? I can't find it in 1.1.3.

Sorry for not being clear: with latest version I meant the latest version here on github which should be out soon. I just created a special version for you that should bring an Essay version 1.1.4 to your system if you upload it via H5P's library page. Old contents will have to be updated via the library page as usual, too, if they should get the new features. Since the next official version of H5P Essay will be 1.2.0, this will not become a problem with version numbers when you want to get the official version again. Let me know if everything works.
h5p_essay_fluffyparakeet.zip
And thanks for becoming a patron!!! $5 is huge!
Also, thanks a lot for sharing your use case! It's always very interesting to see what others use your programs for -- even if you designed them for something completely different :-D

This works perfectly, thank you so much!!!

Great! I'll close this issue then, but feel free to get in touch if you have more questions or suggestions -- the forum at h5p. com is probably a good place, because it's kind of the central hub for Q&As and others could join the conversation more easily, too.

Is there a way to prevent the check button from showing after the initial submission? When the second check button is pressed, another results box shows up above the main results box and is blank.

There is no first and second check button, just one. There's just one, and it has a checkmark in front of the label.
Did you relabel the "Show solution" button to "Check"? That's the one with the eye. It should not show up however if the sample solution text is empty (that's the second box you're seeing).
I am a little puzzled what went wrong here unless you have "Result" as the introduction text of the sample solution and at least a blank in the sample solution text field.

After clearing out the show solution field and making sure there weren't any blank spaces, everything is working as intended. Thanks again!


Remove libjpeg version pinning

We temporarily pinned the libjpeg version to <=9b in #3787 to fix some windows CI jobs. It would be good to remove the pinning. Chances are, the issue will magically resolve in the future?

Unlikely, the type change to size_t is what it is supposed to be since the argument outsize indeed should represents the platform-dependent size variable. Therefore, the strategy to deal with platform-dependent types should be made clear. Any elaboration?


Encapsulate child process command parameters with double quotes

Encapsulating parameters in double quotes prevents them from being parsed
incorrectly when a parameter contains spaces.
Added double quotes to parameters:

target org
devhub username
file paths
package names
tags
test names
permission sets

Added single quote to commands that accept a string containing key/value pairs
as a parameter e.g. force:data:record:create

should we be encapsulating or let the user do it? I am worried on what the behaviour if i pass in with quotes as expected from command line tools

should we be encapsulating or let the user do it? I am worried on what the behaviour if i pass in with quotes as expected from command line tools

There's two points at which flags get parsed: once when running the sfpowerscripts command on the terminal and again when executing a sfdx command in a child process. Any quotes passed on the terminal won't be retained once they get assigned to flags object as a string. The only way that quotes could be part of the string is if the user passed in the flag as --targetorg ""dev hub""

@aly76 could we use spawn or spawnSync instead of exec with the shell option set to false? This way we would bypass the quote processing by the shell when calling the child process.

@aly76 could we use spawn or spawnSync instead of exec with the shell option set to false? This way we would bypass the quote processing by the shell when calling the child process.

Thanks for the heads up @rody. We will keep this in mind when resolving this issue.
We are now trying to avoid running SFDX commands in a child process as much as possible, and hitting the JSForce API's directly.

I am closing this one to be redone using spawn or spawnSync


Fixed out of range crash on remapping files for translation

When remapping a file, the translation_locales_idxs_remap will now be checked if it's size is greater then the language.
Fixes #29483

Well. The fix could be possibly wrong, if translation_locales_idxs_remap was meant to be a map and not a vector. I don't understand what this wants to achieve.

I tested around and did not came across a situation, this fix alters behavior it shouldn't. So I think it works.

Thanks!


Setting the values for pseudocolumn should update the underlying foreign key columns

Unlike a normal Column value a PseudoColumn value actually represents a tuple of the foreign key columns. The recordset directive and its onclick handler #659 will "return" (using that term loosely) a tuple representing the clicked element from the recordset directive.
Ideally, I would suggest that the Tuple class from ermrestjs should be extended with a way to assign values like this:
  // where 'i' is the index of a column or pseudocolumn
  // and 'val' is a new value, in this case a tuple
  tuple.setValue(i, val);

Note that if javascript had let us override its basic types, like arrays, then the above code might have been like this:
   tuple.values[i] = val;

We need to review the above with @jrchudy because he has already had to do something to set values for the record edit and we should continue that pattern (or adjust it now, if needed).
The internal logic of setValue() will need to:

understand when it is assigning a value for a regular Column or a PseudoColumn attribute
when it is a regular Column we just assign the value directly to that attribute (*)
but for PseudoColumn we need to enumerate the "key" columns for the target table of the FKR

assign the value from the target "key" column
to the value of the tuple's corresponding "foreign key" column

(*) One caveat here is whether we want to reverse-format a value. If given a '1,000' string to turn it into a 1000 integer if the column is an integer type. For now, I think we decided not to do that.
This is really an ermrestjs issue but its easier to manager in this epic if we keep all the related tasks together.

@robes, the implementation for this deviated from what you suggested. Should we leave this issue open for you to review the changes?

@jrchudy No, you don't need to keep it open.
But I would like to learn what approach was taken. Maybe someone can review with me.


Howto TLS?

I'm upgrading Hyper to 0.10.10. I had all of the TLS issues worked out fine in an older Hyper but things seem to have changed quite a bit.
The recommended mechanisms for enabling TLS in Hyper do not allow me to specify my own OpenSSL context. As this worked perfectly fine (for me) in an earlier version I assume this is possible in the 0.10.10 release.
Example: this used to work:
let mut server = Server::https(sock_addr, Openssl {context: Arc::new(ssl_ctx)} ).unwrap();

What should I do now?
Thanks.
Notes:
hyper_native_tls was recommended, but does not work (no mechanism for specifying certs etc.)
hyper_rustls::TlsServer will not work because it is too simplistic / doesn't provide the functionality I require. (I require the ability to set many of the SslContextBuilder settings)
hyper::net::SslServer -> it seems this trait is required for Server::https() - but the documentation states there are no implementations available.
hyper-tls -> will not work - the examples seem to indicate this is client only.
The documentation for hyper::Server states: You can use any SSL implementation, as long as implements hyper::net::Ssl.

However, the trait hyper::net::SslServer is not implemented for openssl::ssl::SslContext

It seems this is from an older Hyper (0.8.0) ?? https://hyper.rs/hyper/0.8.0/hyper/net/struct.Openssl.html  - which does not work with Hyper 0.10.10 ??

I feel like I just googled for the wrong thing, and a correct search would give me an example as the first link :-) ??

How about hyper-openssl?
Its OpensslServer implements hyper::net::SslServer and From<openssl::ssl::SslAcceptor>.

Thanks, but hyper-openssl will not work either because I can't pass it an SslContext.

Ok, I see that if I back down to Hyper 0.9.18 that things seem to be working the same way as the old version I was using, and yet it's new enough that I can resolve my cargo dependency issues.
I've switched to 0.9.18 and I think I'll be happy with that (I say think because I now have so many compile errors to resolve :-)
It looks like the 10.x branch is a major rewrite in this area - so feel free to close this if you feel that this ticket would only distract you from your current plans.
Thanks again for Hyper!

By making use of an SslAcceptorBuilder, you can access the SslContext, and then wrap it all up into an SslAcceptor used by hyper-openssl.
I highly recommend you do that instead of use hyper 0.9.18. The 0.9.x set of version will not receive any more updates or bug fixes.


Ipv4_pools and ipv6_pools config docs

Docs for the changes in https://github.com/projectcalico/cni-plugin/pull/260
Pulled in original commit from @duglin's PR #275
Fixes #473

Two comments, then LGTM.

@gunjan5 We should also create a new section which discusses the supported Pod annotations and how to use them.

@caseydavenport https://github.com/projectcalico/calico/issues/493 for annotation, etc docs

LGTM


Changing value of category taxonomy causes an error

I want to change the url of the page that shows the categories.
I changed the value of category taxonomy in the file config/_default/config.toml
[taxonomies]
  category = "something"

But if I have at least one post whit at least one category in its front matter there are an error building the site.

Permalinks can be used for renaming URLs. Refer to Hugo's docs.


EXT3 unsupported optional features (2c0)

Hi!
I just installed v2.0 and created a Debian container image (on a Debian machine), which works great:
debian $ singularity exec container.img cat /etc/debian_version
8.4

Now, I transferred that container image and try to "run" it on a Centos machine, and there seem to be a problem with the way the filesystem image is formatted:
centos $ singularity exec container.img cat /etc/debian_version
ERROR: Failed to mount (ro) '/dev/loop0' at '/tmp/.singularity-215845.2032753612.144117941686781743/mnt': Invalid argument

And the kernel logs on the Centos host say:
JBD: Ignoring recovery information on journal
JBD: Unrecognised features on journal
EXT4-fs (loop0): error loading journal
JBD: Ignoring recovery information on journal
JBD: Unrecognised features on journal
EXT4-fs (loop0): error loading journal
EXT3-fs (loop0): error: couldn't mount because of unsupported optional features (2c0)

Any idea what's wrong here?
Thanks!

Hrmm, I'm not sure actually. It looks like the mkfs.ext4 on the image is not portable between Debian and Centos! Very odd, I haven't seen that before.
 Edit libexec/cli/create.exec and comment out the mkfs.ext4 bits like this:
#if ! MKFS_PATH=`singularity_which mkfs.ext4`; then
    if ! MKFS_PATH=`singularity_which mkfs.ext3`; then
        message ERROR "Could not locate program: mkfs.ext3/4\n"
        exit 255
    fi
#fi

This way we can force it to use ext3 instead. And then recreate an image, and rebootstrap and try to bring that over to the Centos system.
Thanks!

Sure, thanks for looking at it.
I commented the ext4 part, then re-created and boostraped the Debian image, re-imported it on the Centos machine, and now it works.
Which made me wonder if somehow my initial ext4 image had been corrupted somehow, and only worked on the Debian machine because of some sort of caching. So I re-enabled mkfs.ext4 in create.exec, and created a new container image. But still no dice, same "unsupported optional features (2c0)" error when mounting the image.

And for the sake of completeness:
debian # mkfs.ext4 -V
mke2fs 1.43 (17-May-2016)
        Using EXT2FS Library version 1.43

centos # mkfs.ext4 -V
mke2fs 1.41.12 (17-May-2010)
        Using EXT2FS Library version 1.41.12

I think for the sake or portability, I will default to ext3 and offer an option to use ext4. This has been committed in [master 9f27c61] and will be available in v2.1.
Thanks!

Sounds good, thank you!


HACC is unable to reach your Home Assistant instance

Description
Error
The settings entered are not valid. HACC is unable to reach your Home Assistant instance. Try your entries again, consult the setup guide for help, or check the logs (console) for more information.
is shown after adding the long lived token and setting the Override Asset Base URL
Environment
Home Assistant 2021.1.5
AMD64 Docker on Linux Debian
Steps to Reproduce
Uninstalled 0.6 and installed 1.0.26 went to setup and error occured
Screenshots

That's really strange... it's saying it can't reach that URL, but it's accessible via the internet (I can get to it here).
I'm gonna guess that, for some reason, it's not able to resolve https:///api/discovery_info from within the addon, but I don't know why.
One thing you could try is entering https://<your-HA-install into the Override Asset Base URL field to see if that resolves it.

That's really strange... it's saying it can't reach that URL, but it's accessible via the internet (I can get to it here).
I'm gonna guess that, for some reason, it's not able to resolve https:///api/discovery_info from within the addon, but I don't know why.
One thing you could try is entering https://<your-HA-install into the Override Asset Base URL field to see if that resolves it.

Well decided to install on another server and connected to HA running ok ??

If it connected OK, it doesn't really matter where HACC is installed - it is perfectly OK for it to be on a different server. 😉
Please open a new issue if you run into any other issues, thanks!


Update SDK and dependencies

Update to .NET Core SDK 2.1.403.
Update samples to ASP.NET Core 2.1.5.
Update Refit and analyzers to latest versions.

Codecov Report

Merging #49 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #49   +/-   ##
=======================================
  Coverage   99.86%   99.86%
=======================================
  Files           8        8
  Lines         738      738
  Branches       99       99
=======================================
  Hits          737      737
  Partials        1        1

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 900b50a...ebc81f7. Read the comment docs.


chore: remove right fade on right when scrolled to end of gallery

Description
Removes the gradient fade on the right of image gallery when gallery is scrolled all the way to the end.
Related Issue(s) / Ticket(s)
Addresses part of https://github.com/newrelic/developer-website/issues/1405
Screenshot(s)
https://user-images.githubusercontent.com/2952843/122313040-56359580-ceca-11eb-9cbc-d6db794ea0bb.mp4
https://user-images.githubusercontent.com/2952843/122313179-97c64080-ceca-11eb-858d-0fd4628fcb21.mp4

@roadlittledawn any concern with merging this change in? I noticed it's a 6 day old pr.

We're going to remove this in favor of the animated slider work done in #1417


enhance testing

Coverage increased (+8.8%) to 89.381% when pulling 5b620edf2cafda093b748d2cde84e3e9ee2a7b5c on error-tests into 0bc030d262d99f2ac61509c6756203e93a8142a6 on master.

Coverage increased (+8.8%) to 89.381% when pulling 995e38a07429f887dd1a41f12f233362c2259b5e on error-tests into 0bc030d262d99f2ac61509c6756203e93a8142a6 on master.


Propose to add VictoriaMetrics into brew packages

Provide a detailed description of the proposed feature
There is a TSDB named VictoriaMetrics. I can be used as a Prometheus replacement. More over it has many other features that have been improve from developers - see this https://docs.victoriametrics.com/#prominent-features
What is the motivation for the feature?
VictoriaMetrics as other open source software is free to use and open for feature requests from users. As a community member I see feature requests for adding VictoriaMetrics to brew packages. But I can't find any documentation how to add it so created this feature request.
How will the feature be relevant to at least 90% of Homebrew users?
For now we have an RPM community repository for redhat linux and redhat forks, docker scenarios and kubernetes helm charts for installation and using it but many users don't want to use docker on MacOS and prefer to use binary files from brew. IMHO: adding VictoriaMetrics to brew packages will increase amount of new users which could bring new contributors.
What alternatives to the feature have been considered?
Brew already contains loki, grafana, prometheus, influxdb and other software for monitoring different kind of software and devices but I think that the availability of alternatives and competitors always encourages the development and improvement of the quality of the software.

Please open a pull request at https://github.com/Homebrew/homebrew-core. This guide might help: https://docs.brew.sh/Adding-Software-to-Homebrew


Fix for CVEs in apicurio-registry-kube-sync

Apicurio v2.1.5 (and before) is using libcrypto, libssl, and libx libraries, which have some critical vulnerabilities reported-

https://nvd.nist.gov/vuln/detail/CVE-2021-3711
https://nvd.nist.gov/vuln/detail/CVE-2021-31535

We have scanned the apicurio/apicurio-registry-kube-sync docker image. As per our company's security guidelines, these CVEs are restricting us not to start with ApiCurio.
Do we have any plan to fix these vulnerabilities in the coming releases?

This was addressed some time ago.


Enumerations!

Hello contributors, I have added some enumerations into this project, use them as much as you can.
This does seem like a little addition, but may be a time saver for a future feature.
Thank you for reading.

Also to addon, some of these are for ltms.


Quick check for default experimenter field

Pull Request instructions:

Please follow the update protocol
Answer the questions below in detail. Your responses will be emailed to experimenters.
If the experimenters must do anything new, provide detailed step by step instructions on the wiki
Use markdown syntax in order for your comments to be rendered reliably in the email: "1." instead of "1)", use four spaces for indents.
If you use the keyword "skip email" in the title, it will skip the email updates
Merges from "develop" into "production_testing" should use the keyword "production merge" in the title for reliable indexing of updates
Merges from "production_testing" into "main" should use the keyword "update main"

Describe changes:
Adds a check at session start for the experimenter field set to the default value.
What issues or discussions does this update address?

partially resolves #294

Describe the expected change in behavior from the perspective of the experimenter
If you forget to change the experimenter field for a mouse, it will prompt you.
Describe the outcome of testing this update on a rig in 447

[ ] tested in 447

@XX-Yin @hanhou this is ready for review


Export Fails

The export using the action fails. I am running Monterey 12.0.1, same as you (I imagine), and can't get a successful export. Is there a long file somewhere I can pass to you in order to help?

Having the same with Windows 11 Pro 22H2 22621.2215 and Adobe Photoshop Lighroom Classic Version 12.5 Camera Raw 15.5.
ERROR I receive is: Unknown Error. This Picture was not rendered.


Phala World Shell Parts & Market Updates

Targets

[x] Add tradable bool field for minting shell part NFTs
[x] Add tests for marketplace simulated NFT part sell
[x] Enable pallet_rmrk_core::send for user facing function
[x] Change incubation phase to 8 days
[x] Disable RMRK Market Pallet Calls

Disable RMRK Market Pallet Calls

Is it means RMRK Market Pallet Calls all disabled in this branch? When I try to test the update from this branch, the list extrinsic fail with the message "system.CallFiltered: The origin filter prevent the call to be dispatched".

Based on the example code in #180, I'm try to find out how to trade / send parts NFT, but call rmrkMarket.list API failed because it said I not the owner of NFT.

Based on the example code in #180, I'm try to find out how to trade / send parts NFT, but call rmrkMarket.list API failed because it said I not the owner of NFT.

This is due to the NFT being nested under a NFT. So the NFT owner is the derived account of the parent NFT. You would need to send the NFT to your AccountId before you can list the NFT in the marketplace.

Disable RMRK Market Pallet Calls

Is it means RMRK Market Pallet Calls all disabled in this branch? When I try to test the update from this branch, the list extrinsic fail with the message "system.CallFiltered: The origin filter prevent the call to be dispatched".

Yes, they are disabled to prevent listing/selling the NFTs until we enable the market functionality after the incubation phase & hatching of Shell NFT.

Based on the example code in #180, I'm try to find out how to trade / send parts NFT, but call rmrkMarket.list API failed because it said I not the owner of NFT.

This is due to the NFT being nested under a NFT. So the NFT owner is the derived account of the parent NFT. You would need to send the NFT to your AccountId before you can list the NFT in the marketplace.

I don't have any experience with that. Can you share the API name or test script with me? I'm looking around rmrkCore and rmrkMarket but not sure which API I should use.

Another small issue I'm found under the test:

Lee list his NFT: rmrkMarket.list(2, 0, 10, null).
Lee sends the NFT to Joshua: rmrkCore.send(2, 0, joshua).
Anyone can continue see the list information (query.rmrkMarket.listedNfts), but the owner still Lee and no one can make offer for that.

That more like a bug for RMRK, the send extrinstic should unlist a NFT when the send extrinstic successful.


Understanding Overrides

I think we need to come up with some way to explain what overrides are available in general. The simple answer may be to direct people to the source code of the default overrides so they can see how we are doing what we're doing.

Each component documents it's overrides in the moduledocs, but I get that people may not be looking there, eg: https://ash-hq.org/docs/module/ash_authentication_phoenix/1.4.5/ashauthentication-phoenix-components-oauth2

Yeah, the difficulty is not knowing where to look. A guide that has a link to each override and does a bit of exposition on "here is how you do custom UI stuff, and if you need structural changes then you can make your own page and use our components..." that kind of thing. I think guides are the most discoverable thing we have at the moment.

Agreed.

After stumbling through this myself, I found the easiest thing to do was to look at the default overrides. A link to that in the docs would help a lot.

It's also unclear where and how you would use these overrides.
Since the guide only goes through autogenerated routes, the next question is... "Now what?" :)

It also doesn't help that the names don't fit on screen in docs :) Though I don't know how to fix that


Arrange for the team to attend the accessibility audit in-person

What
DAC have offered the team the opportunity to attend the audit in-person at their testing centre in Neath, South Wales.
Why
To get first hand experience of our work being tested.
Who needs to work on this
Kelly or Charlotte
Who needs to review this
DAC
Done when

[ ] we know who is attending
[ ] we have shared these details with DAC

@CharlotteDowns Is this good to close now?


Fixed Nav Layout not shrinking in Modal

Description of Changes
checking the NavLayout tDrawer type then set manager position and width accordingly

Is there anything else that I need to do from my end for this? Is how I have done it acceptable?


Add Genres to the fields queried to populate Concept pages

Genres exist in the data as concepts (e.g. Ephemera, here https://wellcomecollection.org/concepts/kpmugnt4 or Chromolithographs: https://wellcomecollection.org/concepts/nc9vxjsv), but when populating a Concept page, only Subjects and Contributors are queried, so those pages are a bit sparse.

This should be treated in a similar manner as the Agent "about this person vs. by this person" tab distinction.  (actual copy to be decided)

This is kinda done in https://github.com/wellcomecollection/wellcomecollection.org/tree/get-genres-in-concept-pages but I fancy it's a little untidy and I'm not sure I've fully exercised it to uncover potential flaws.
Notable resources to examine include:

/concepts/tuvpy6ew

This concept uses the sameAs field to populate the sections with data corresponding to both tuvpy6ew and whcsuusy

/concepts/hdhvzkdw

Simlar to tuvpy6ew, this fetches data from hdhvzkdw  and vcxg3x4e.  However, (and this is a pipeline problem, rather than an API/page one) are "Archives" the Genre and "Archives" the Subject really the same thing?  I don't think this is a solvable problem without special-casing, because we only have the name to go on for many genre/subject pairs (e.g. Leaflets).

/concepts/bewjxq6d This one bamboozled me a bit, because both works and images had the same approximate number in the view all buttons. It turns out that this is correct.

Notably, there are three different ids for Intaglio Prints in the catalogue, but it looks like two of them are defunct.

/concepts/ap2fak73

Another one with using and about.  In this case, there is only one "about" image.  I think this suggests that the tab order should be different for Genres, with "using" first.
Similarly, perhaps "by" should be first for Agents?

There is one Work with a Genre as a contributor (https://wellcomecollection.org/works/bwcpg2dy has Recipes.). It looks like a mistake.

I have been unable to find any concepts with images both in and about.  Portrait prints (r39cqx4s) may be an example, but the only about for that is PORTRAIT PRINTS (works/fqtm5kr7 so no match by exact term). The same is true of Engraving`` and Lithographs`, which both have images about them, but the term differs on case.

Songs https://wellcomecollection.org/concepts/cfxnfvnc is the one.  That's got both images and works about and in.


brpop, blpop operation need isMasterOnly = true

I ran brpop, blpop operation to Slave Client, occur not use in Readonly server.
but brpop, blpop not setting "isMasterOnly = true"
In Master-Slave env,  connect to slave server, and send blpop, brpop
READONLY  *************

I think it is fixed now
https://github.com/etaty/rediscala/blob/790d76411acaca20ebde49e9a6369b1c6ecfceae/src/main/scala/redis/api/BLists.scala#L18


Fragment Programs hot reload, but FragmentShaders do not

Is there an existing issue for this?

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

Steps to reproduce

Set up an app like this
late FragmentShader loadedShader;

Future<void> main() async {
  loadedShader = (await FragmentProgram.fromAsset('assets/shaders/my_shader.frag')).fragmentShader();
  runApp(const MainApp());
}

Use loadedShader somewhere in your widget tree.

Make changes to the GLSL code within my_shader.frag.

Hot reload (NOT hot restart)

Notice your shader NOT update

Expected results
Since we are excited about hot reloading shaders, I would expect the above to trigger repaint the app with my updated shader.
Actual results
The app never updates and the new shader code is not included.
Code sample
The following changes to the above code make hot reloads work just fine. I understand that this is the intended way for developers to include custom shaders, but it's a bit of a foot-gun.
late FragmentProgram loadedProgram;

Future<void> main() async {
  loadedProgram = await FragmentProgram.fromAsset('assets/shaders/my_shader.frag');
  runApp(const MainApp());
}

And then in your widget tree:
SomeWidgetThatAcceptsAFragmentShader(
  shader: loadedProgram.fragmentShader();
);

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.9.0-22.0.pre.14, on macOS 13.3 22E252 darwin-arm64,
    locale en)
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more
      details.
[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.77.1)
[✓] Connected device (2 available)
[✓] Network resources

! Doctor found issues in 1 category.

Does my_shader.frag have any #include <other_file.glsl> statements?
I have noticed issues hot reloading in those cases as well. Searching for an existing issue on it now.

Does my_shader.frag have any #include <other_file.glsl> statements?
I have noticed issues hot reloading in those cases as well. Searching for an existing issue on it now.

Please raise a new issue with a minimised reproduction case. Thanks!

Closing this as working as intended.


Specify "interpolation" mode in vision_transformer's resize_pos_embed

In vision_transformer.py, the default _cfg has an "interpolation: bicubic" setting. However, this config is not used during model building. The "bicubic" settings is always ignored and "bilinear" is hard coded.
This change allows changing this setting. Both default cfg and user specified kwargs can be used.
mode='bicubic', align_corners=False is the current best setting proposed in DeiT's code base.

@drjinying the 'interpolation' value in the default_cfg is for the interpolation of the input images, don't think I want to tie the pos embed to that interpolation.
Have you done any comparisons on bilinear vs bicubic interpolation for the pos embed to confirm that bicubic is definitely superior for that purpose? I'd just update it to use bicubic then if that is definitely the case....

@rwightman Oh thanks for the information...
Yes, bicubic is superior for positional embedding in a ViT model I trained, though the difference is marginal in my case. The DeiT paper which trained ViT for ImageNet claims "However, a bilinear interpolation of a vector from its neighbors reduces its L2-norm compared to its neighbors. These low-norm vectors are not adapted to the pre-trained transformers and we observe a significant drop in accuracy if we employ use directly without any form of fine-tuning"
I have change the PR as your suggestion. It is the same as Facebook's implementation at
https://github.com/facebookresearch/deit/blob/e6b10b554d17c25c083eda5d5d7505608c6981f8/main.py#L278

BTW, the align_corners parameter is used for suppress a PyTorch warning. It doesn't change any behavior.

@drjinying please be aware that there are resize_pos_embeds in other places too:

@drjinying please keep in mind there is also a resize_pos_embed in nest.py

Thanks @alexander-soare. Updated nest.py as well.


Jesse: Blacklist techtoroms.com

Jesse requests the blacklist of the website techtoroms\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

techtoroms\.com has been seen in 6 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


ISPN-9261 Hot Rod Lightweight Transaction (recovery) [client]

https://issues.jboss.org/browse/ISPN-9261
Depends on https://github.com/infinispan/infinispan/pull/6179
Still missing some javadoc/docs that will be added for CR1.

updated!

updated!

Integrated, thanks Pedro!


1553: Support OBIE Read/Write API v4.0.0

Issue: https://github.com/SecureApiGateway/SecureApiGateway/issues/1553
Description: Added RS support for the Domestic Scheduled Payments API.

LGTM thanks Laura.

Thanks Wayne!


what does this error mean

Describe your problem here.
what in the frizzley nizzley is this

Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

Broken json

ah ok thx


[Macros] Rework the way we assign closure and local discriminators

Setting closure and local discriminators depends on an in-order walk of the AST. For macros, it was walking into both macro expansions and arguments. However, this doesn't work well with lazy macro expansions, and could result in some closures/local variables not getting discriminators set at all.
Make the assignment of discriminators only walk macro arguments, and then lazily assign discriminators for anything within a macro expansion or in ill-formed code. This replaces the single global "next autoclosure discriminator" scheme with a per-DeclContext scheme, that is more reliable/robust, although it does mean that discriminators of closures and locals within macro expansions are dependent on ordering. That shouldn't matter, because these are local values.
Fixes rdar://108682196.

@swift-ci please smoke test