NME without z-normalization

Hello,
Thank you for this inspirational work. I have been trying to use this code for specific kind of pharmacometric data but I don't want to z-norm the features and outputs. Every time I turn of z-norm, I get strange output that seems to be constrained somehow.
Is there is a workaround for that?

Can you please provide more details, ideally a minimal reproducible example?
Two thoughts (sorry, just guessing):

When you train a normal neural network (without NME), do you have the same/similar issues when you do not apply a z-norm? It is typically beneficial to z-normalize input features and output features, so I would expect that you might encounter the same issue with a normal neural network as well.
Pharmacometric data is often rather low-dimensional, meaning you might not need NME - saemix might be faster for you

sure. I am trying to fit data with 3 dimensions. x is time, y is concentration, and dose is regressor. So, I had to tweak the examples a little to pass dose from meta key.  This is different from the example provided with PDsim.
It is similar to here: https://saemixdevelopment.github.io/saemix_bookdown/casestudies.html
But also when I suppress the z-normalize in the case provided in the test file, I get strange results for observed vs predicted plots.
class theophylline(LossModule):
    def __init__(self, **kwargs: Any) -> None:
        """Model has three mixed effects."""
        super().__init__()

        self.ka = torch.nn.Parameter(torch.tensor(1.0))
        self.v = torch.nn.Parameter(torch.tensor(20.0))
        self.cl = torch.nn.Parameter(torch.tensor(0.5))

    def get_parameter_names(self):
        return tuple(name for name in self.__dict__ if not name.startswith('_'))

    def forward(
        self,
        x: torch.Tensor,
        meta: dict[str, torch.Tensor],
        y: Optional[torch.Tensor] = None,
        dataset: str = "",
    ) -> tuple[torch.Tensor, dict[str, torch.Tensor]]:
        """Predict drug response given the doseage."""

        ka = self.ka
        v = self.v
        k = self.cl/v
        dose = meta["AMT"]
        # print(f'subject: {meta["meta_id"]}')
        # print(f' AMT {torch.unique(dose)}')
        return (dose*ka/(v*(ka-k))*(torch.exp(-k*x)-torch.exp(-ka*x))).float(), meta

I just tried to comment out this part in the transforms, as normalizing time is not going to be a good idea for interpreation.
 data = (data - transform_dict["mean"]) / transform_dict["std"]
 assert np.isfinite(data).all(), key

            # clip outliers at p~0.998
  if key == "x":
       data.clip(-3, 3, out=data)

saemix is working fine for sure, but things will get interesting if I can scale this idea up by integrating patient information !
If I understand your edit correctly, do you mean getting initial estimates from fixed effects first?

Wow, I think you are probably the first person except me who uses python_tools :) I hope it is not too frustrating, I wrote it to re-use code blocks I  often used.

I just tried to comment out this part in the transforms

If you don't z-norm, you definitely also have to remove the clip command (clips everything larger than 3 standard deviation - assuming it is z-normed).

If I understand your edit correctly, do you mean getting initial estimates from fixed effects first?

Yes, train a normal neural network without random effects and then use the estimated parameter to initialize NME.
I would expect that even a normal neural network will take a long time to converge without z-norming (it takes gradient descent a long time to change parameters, much faster to change from -1 to 1 than from 20 to -20). I would try starting with a larger learning rate (and decaying it as the parameters converge) and letting the model run for many, many, many epochs.

Another idea: you might need to adjust simulated_annealing_alpha as the weighted L2 norm of NME might become too strong too quickly if it takes a long time to train the model. I think this is less of an issue with saemix as it uses sampling (can make large jumps, unlike gradient descent).

thanks a lot for your inputs. It indeed seems to converge way slower than saemix.


dataset.py:1231: RuntimeWarning: divide by zero encountered in log

Our unit tests have started generating this warning, in addition to the warnings reported in #329.
tests/dataset/test_dataset.py::TestGeneExpressionDataset::test_filter_cells
  /home/travis/build/YosefLab/scVI/scvi/dataset/dataset.py:1231: RuntimeWarning: divide by zero encountered in log
    log_counts = np.log(data.sum(axis=1))
  /home/travis/build/YosefLab/scVI/.eggs/numpy-1.17.0rc1-py3.7-linux-x86_64.egg/numpy/core/_methods.py:193: RuntimeWarning: invalid value encountered in subtract
    x = asanyarray(arr - arrmean)

This is the line that generates the warning:
https://github.com/YosefLab/scVI/blob/2c51643a6b2dcef477fcc7a716ce6be1e933344c/scvi/dataset/dataset.py#L1231
Do we want to add 1 before taking the log? Or make sure our test data doesn't have any zeros for these columns?

Hi @jeff-regier ,
We can make sure our test data doesn't have any zeros but we still have the warning for the real data (in some notebooks with real data we now have this warning).
The way it's now done in GeneExpressionDataset, the log counts are computed before any possible filtering with the API ...
I think only taking the log(1+x) would work for sure!

@romain-lopez Would log(1+x) make sense here?

I hope it does not affect the way we set the prior too much. I can't be sure but it might be fine.

Looks like it is used here:
https://github.com/YosefLab/scVI/blob/48740851f32e1bee8d4e87f3b18a2bec9ec97e9c/scvi/models/vae.py#L210
I guess the prior is being set based on some statistic of the (biological) batch

The current way of setting the prior doesn't seem great to me, but changing it is probably more major change than we want the make just to suppress some warnings. How about removing the zeros from the test data for now?

We could also do
log_counts = np.ma.log(data.sum(axis=1)) .filled(0)
Or catch the warning and warn the user they have cells in their dataset that are all 0?

The problem is really with how that prior is set. The current procedure calls for setting the mean to negative infinity if all the entries for are zero. That's too extreme imo. Thresholding the mean at -3 should be more than small enough I think

The problem is really with how that prior is set. The current procedure calls for setting the mean to negative infinity if all the entries for are zero. That's too extreme imo. Thresholding the mean at -3 should be more than small enough I think

If there are cells for which all entries are zero, it's fine that scvi  fails right?

We filter cells that are all zero usually yes
Le jeu. 18 juil. 2019 à 18:23, Achille Nazaret<EMAIL_ADDRESS>a
écrit :

The problem is really with how that prior is set. The current procedure
calls for setting the mean to negative infinity if all the entries for are
zero. That's too extreme imo. Thresholding the mean at -3 should be more
than small enough I think
If there are cells for which all entries are zero, it's fine that scvi
fails right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/YosefLab/scVI/issues/407?email_source=notifications&email_token=AFCDZD4F4NG247ODP2RNCELQAEJPRA5CNFSM4IBOMTI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2KJBAA#issuecomment-513052800,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFCDZD3MEGJODLITNEAVU4LQAEJPRANCNFSM4IBOMTIQ
.

--
Romain Lopez
PhD candidate, EECS
UC Berkeley
<EMAIL_ADDRESS>+1<PHONE_NUMBER>

That summation may be computed across genes, not cells. So perhaps the problem is that some genes are always zero?
That said, I thought we filtered out genes that are always zero too. But perhaps we're filtering before the dataset is divided into a training set and a testing set?

I am trying to fix this, basically by using Adam's method and returning a warning that scVI might not run well on data with empty cells using the warning logger


Test against Node v0.12

Potentially drop support for v0.11.
Node v0.10, v0.12 and io.js should not be marked as allowed failures.

Covered by 60c99b828fe34842a2168b8071782074f705be97...9c449d531dd2236d50cdae4e6a22dac35aaec538.


es module, for modern browser use without bundlers

hello friend, thanks for this lovely module
my application uses es-modules, so i made a quick adaptation of locale2
i don't have time to apply the refactor to this repo, but here's the gist for my adaptation i'm using in my app:

"locale2.js" and "locale2.ts" es-modules

my adaptation makes some assumptions and so only works in the browser (setting global = window)
just thought i'd share in case somebody else was in the same boat
:wave:

sorry for the long delay in replying! i'll happily work on this case :)

i know this is 2 years later, but i will be creating a TS version of this in the next major release.


EACCESS -> EACCES

I know almost nothing about auditd and these rules, but this appears to be a typo in the template. I cannot find anything online about EACCESS, but we seem to be using EACCES throughout this file. We were trying to send these compliance.rules to Elastic's Auditbeat and getting an error about not recognizing "-EACCESS". I changed it to -EACCES and that cleared the error up.

Matt -
My best guess is that it's an architect issue, as EACCESS is a real thing (as is EACCES). I've looked up templates for both.  Since you're not getting that error after the change, then you should be good.  I've had errors with the timex and symlink entries on compliance, and it was "arch=" entries that were the problem.

I don't know the difference either, nor which one should be used for this role.
I ran the PR on one of our CentOS 7 servers and the rule itself seemed fine, but I ran into this issue trying to restart auditd. Would you mind adding use=service to the auditd handler in nist_compliance/handlers/main.yml, as described in that link?

I'll take care of this now


IOS ERROR

Error when sending event: networkChanged with body: {
isConnected = 0;
isFast = 0;
type = "No Connection";
}. Bridge is not set. This is probably because you've explicitly synthesized the bridge in RNNetworkState, even though it's inherited from RCTEventEmitter.
(
"4   libc++abi.dylib                     0x000000010ecc365e _ZSt11__terminatePFvvE + 8",
"5   libc++abi.dylib                     0x000000010ecc3307 __cxa_rethrow + 99",
"6   libobjc.A.dylib                     0x000000010a93d8de objc_exception_rethrow + 40",
"7   CoreFoundation                      0x00000001095aeea3 CFRunLoopRunSpecific + 771",
"8   GraphicsServices                    0x000000010fff91dd GSEventRunModal + 62"
)

@hanwenbo Thank for the report. I will take a look this weekend.

@anhtuank7c You're welcome. Thank you. It's very good.


Outline Project Code

To help with segmentation of code, comments should ideally outline the basic workflow of the website. What sections we'll have in the HTML, what functions we'll need in the JS, etc. Once we have the outline set up, it will be much easier to fill in the code and have it work together when finished.
Example comment:
HTML

JS
/* Function: exampleFunction()
Arguments: ...
Returns: ...
Function: ...
*/

Completed


[go_router] Unwanted black screen when using async redirect.

GoRouter shows an unwanted black screen till the redirect async operation completes. It should instead build the underlying page before evaluating redirect.
  return GoRouter(
    routes: Routes.all,
    redirect: (context, state) async {
	 // Sample asynchronous operation.
      await Future.delayed(const Duration(seconds: 6));

      // no need to redirect at all
      return null;
    },
  );

Originally posted by @lucavenir in https://github.com/flutter/flutter/issues/112798#issuecomment-1485230617

Hi @xsahil03x. Would it be possible to provide us with a minimal reproducible code?

@opxdelwin, here's the dartpad sample.
https://dartpad.dev/?id=40fab84237c88f8efc4d9af2994c4078

GoRouter shows an unwanted black screen till the redirect async operation completes

I tested this, I couldn't reproduce any black screen for 6 seconds, as mentioned in your question. But I did notice a split-second black layer while the page switch was taking place, which I think would be very normal.
Am I missing anything?

@opxdelwin here's a sample video showing the issue. Notice the debug label; it means the app is started and will keep showing a blank screen for 6 seconds (async operation) and then switches the root (/) screen.
https://github.com/flutter/flutter/assets/25670178/c9d83bab-702a-4dc6-9796-6a4cca949f37

Looks like this only happens on app startup, as redirect is called every time you push a route. Moreover before diving into code, it'd be pretty reasonable to say that redirect is called on app startup even before building GoRoutes, hence there's no underlying page/screen

Looks like this only happens on app startup, as redirect is called every time you push a route

Yes, that happens because on the first "warmup" phase, no contents are being painted to the screen. Instead, if something's being shown on the screen, nothing changes (aka you see the previous route), and after a while you get redirected.

redirect is called on app startup even before building GoRoutes

And about this, yes, that's the main issue. In that comment I asked: why isn't the first frame painted, and then the users get a redirect? A quick answer could be: that's undesirable. Usually, you don't want to pain the current screen if you're supposed to be redirected away from it.
At this point, the a quick workaround for this "startup phase" is to run runApp twice with a SplashScreen, or to just initialize your application with a SplashScreen with no redirects on it, and write a few imperative LoC in there.

Hi @xsahil03x. Thanks for filing this issue. I'm able to reproduce this on the latest versions of flutter.
Details

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

void main() => runApp(const MyApp());

/// The route configuration.
final GoRouter _router = GoRouter(
    routes: <RouteBase>[
      GoRoute(
        path: '/',
        builder: (BuildContext context, GoRouterState state) {
          return const HomeScreen();
        },
        routes: <RouteBase>[
          GoRoute(
            path: 'details',
            builder: (BuildContext context, GoRouterState state) {
              return const DetailsScreen();
            },
          ),
        ],
      ),
    ],
    redirect: (context, state) async {
      await Future.delayed(const Duration(seconds: 6));
      return null;
    });

/// The main app.
class MyApp extends StatelessWidget {
  /// Constructs a [MyApp]
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerConfig: _router,
    );
  }
}

/// The home screen
class HomeScreen extends StatelessWidget {
  /// Constructs a [HomeScreen]
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Home Screen')),
      body: Center(
        child: ElevatedButton(
          onPressed: () => context.go('/details'),
          child: const Text('Go to the Details screen'),
        ),
      ),
    );
  }
}

/// The details screen
class DetailsScreen extends StatelessWidget {
  /// Constructs a [DetailsScreen]
  const DetailsScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Details Screen')),
      body: Center(
        child: ElevatedButton(
          onPressed: () => context.go('/'),
          child: const Text('Go back to the Home screen'),
        ),
      ),
    );
  }
}

Video

https://github.com/flutter/flutter/assets/53122008/4bd9099d-a8bc-4471-a0a9-5bb9d3103d20

@chunhtai it would be nice to have top level builder to show splashscreen or routes

Any news on this or some kind of work around? I got the same issues and it becomes kinda crucial  for my app.   😕

@wm-alex
maybe you can try something like this:
https://dartpad.dev/?id=645472012f8e93dbda3806ad36546890

https://github.com/flutter/flutter/assets/59083528/d2ef0053-b80d-49e2-a49d-91a07a39b77b
wanted black screen when using async redirect, is not only being show while Initial Launch, but also during the Navigating from one Screen.
I hope this would be considered as  priority, as there is no work around, it will directly impact the end user...
I think, if while redirect is happening if Dev can put Loading Screen that might be fix. Instead of talking to respective platform splash screen...
The loading screen between the redirect would give Dev to show specific screen...
cc: @chunhtai

@Vedsaga that looks like a different bug. If the redirect during navigating from one Screen, the screen will stay on the original screen until redirect finishes. That black screen underneath is unexpected.
For the original issue I would like to gather some feedback on what the api would look like. Do we only want to support initial load? or also in between navigation.

Do we only want to support initial load?

It's essential to support initial load scenarios. Most applications, upon launch, perform token checks or similar operations, which are inherently asynchronous (taking from a few milliseconds to a few seconds). It's unclear whether we can keep users on the native Splash Screen (Android) or Launch Screen (iOS) during this first async operation. Holding the user on the splash screen until the initial async tasks are complete would enhance user experience.

or also in between navigation.

// Proposed Enhancements in GoRouteData:
// Introduction of a complementary builder alongside the 'redirect' function in GoRouteData. This addition would facilitate the display of a temporary widget during asynchronous redirect operations, maintaining visual continuity for the user.

FutureOr<String?> redirect(BuildContext context, GoRouterState state) => null;

Widget redirectInProgressBuilder(BuildContext context) {
  // Define the temporary widget to display during the asynchronous redirect operation.
}

// Utilizing a FutureBuilder, this approach immediately renders the 'redirectInProgressBuilder' widget. Subsequently, when the 'redirect' operation concludes, the widget defined in the 'build' method is rendered. This strategy effectively minimizes the occurrence of unwanted black screens and significantly improves the user experience during asynchronous navigation.

then FutureBuilder could be used, to render paint  Widget redirctInBetweenBuilder immdeitely and when redirect then  Widget build  could be painted ?

imho, there's no need to add fancy APIs to the router, as long as GoRouteData is a widget, we are allowed to:

register async or sync dependencies with any state management solution
show any loading / error / data widget in case of asynchronous redirection

This would indirectly solve a good number of problems (see my comment above)

I wrote a design doc http://flutter.dev/go/go-router-redirect, let me know what you think.

I'm not sure if I should comment here or directly in the document, but here's a question
GoRouter(
  guards: [guard1, guard2, guard3],
  routes: [
    GoRoute(
      guards: [guard4, guard5],
      routes: [
        GoRoute(
          guards: [guard6],
        ),
      ],
    ),
    GoRoute(
      guards: [guardX],
    ),
  ],
);

What's the correct guard order execution?
In other words, is it depth-first or breadth-first?

you should comment in the doc, the route parsing will only choose a path, so it won't call every guard in your example. It will either be
g1, g2, g3, g4, g5, g6
or
g1, g2, g3, gx

Thank you, I totally misinterpreted the guards.

The black screen can be customized from MaterialApp.router by using the builder method. For example you can do something like this:
MaterialApp.router(
    ...

    builder: (context, child) => ColoredBox(
        color: Theme.of(context).brightness == Brightness.light
        ? Colors.white
        : Colors.black,
        child: child,
    ),

    ...
);

The black screen can be customized from MaterialApp.router by using the builder method. For example you can do something like this:
MaterialApp.router(
    ...

    builder: (context, child) => ColoredBox(
        color: Theme.of(context).brightness == Brightness.light
        ? Colors.white
        : Colors.black,
        child: child,
    ),

    ...
);

@MahMoos This won't solve the issue people are talking about, as the route is not rendered while redirect is executing the logic contained within it.

The black screen can be customized from MaterialApp.router by using the builder method. For example you can do something like this:
MaterialApp.router(
    ...

    builder: (context, child) => ColoredBox(
        color: Theme.of(context).brightness == Brightness.light
        ? Colors.white
        : Colors.black,
        child: child,
    ),

    ...
);

@MahMoos This won't solve the issue people are talking about, as the route is not rendered while redirect is executing the logic contained within it.

@benPesso You are right and I know it. It's just a work around that I've suggested in order to display something else instead of the black screen until the issue is solved. You can use a Stack with a progress indicator here instead for example, but it will have performance implications.

Hi,
I've the same issue with a top level onboarding redirect:
import 'dart:async';
import 'package:fitmetrics_app/app/bloc/app_bloc.dart';
import 'package:fitmetrics_app/pages/index.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';

class OnboardingGuard {
  const OnboardingGuard._();

  static List<String> allowedPaths = [
    OnboardingPage.path,
    LoginPage.path,
    RegisterPage.path,
  ];

  static FutureOr<String?> guard(BuildContext context, GoRouterState state) async {
    final appBloc = context.read<AppBloc>();
    final appState = appBloc.state;

    if (!appState.ready) {
      return null;
    }

    final bool isOnAllowedPage = allowedPaths.contains(state.matchedLocation);
    if (isOnAllowedPage) {
      return null;
    }

    if (!appState.hasCompletedOnboarding) {
      return OnboardingPage.path;
    }

    return null;
  }
}

@BriceFab I don't see you actually awaiting anything, so just make guard synchronous (remove the async` keyword). That'll solve your problem.

@benPesso Yeah right. Thanks ! It's solve

My current workaround is to set initialLocation: '/' and mount widget which shows loading indicator  and performs all loading logic after which it redirects.
router.dart
final routes  = [
  GoRoute(
    path: '/'
    builder: (context, state) {
      return const Home();
    },
  ),
...
]

final appRouter = GoRouter(
  initialLocation: ROUTES.HOME,
  routes: routes,
);

Home.dart
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:real_app/constants/routes.dart';

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

  @override
  HomeState createState() => HomeState();
}

class HomeState extends State<Home> {
  Future<String> _load() async {
    bool hasToken = await Storage.getAuthToken() != '';

    await Future.delayed(const Duration(seconds: 3));

    if (hasToken) {
      return ROUTES.DASHBOARD;
    } else {
      return ROUTES.LOGIN;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FutureBuilder(
        future: _load(),
        builder: (context, snapshot) {
          // Show loader while the future is loading
          if (snapshot.connectionState == ConnectionState.waiting) {
            return const Center(child: CircularProgressIndicator());
          }
          // Check for errors during loading
          else if (snapshot.hasError) {
            return Center(child: Text('Error: ${snapshot.error}'));
          }
          // When the future completes, decide the route
          else if (snapshot.hasData) {
            WidgetsBinding.instance.addPostFrameCallback((_) {
              GoRouter.of(context).go(snapshot.data!);
            });

            return const SizedBox(); // Return an empty widget while the redirect happens
          }
          // Fallback in case no data
          else {
            return const Center(child: Text('Unexpected state'));
          }
        },
      ),
    );
  }
}

After some testing looks like there's brief flash because of return const SizedBox(); // Return an empty widget while the redirect happens
https://github.com/user-attachments/assets/ba38fcba-05ea-4294-8eb3-c8b530074b97

After some more testing and playing around I managed to make it smoother, although noticeable fps drop in animated widgets.
 FutureBuilder(
      future: _load(),
      builder: (context, snapshot) {
        // Show loader while the future is loading
        if (snapshot.connectionState == ConnectionState.waiting) {
          return Center(child: SvgPicture.asset('assets/logo-light.svg')); // <- IMPORTANT, SHOULD BE SAME WIDGET!
        }
        // Check for errors during loading
        else if (snapshot.hasError) {
          return Center(child: Text('Error: ${snapshot.error}'));
        }
        // When the future completes, decide the route
        else if (snapshot.hasData) {
          WidgetsBinding.instance.addPostFrameCallback((_) {
            GoRouter.of(context).go(snapshot.data!);
          });

          return Center(child: SvgPicture.asset('assets/logo-light.svg')); // <- IMPORTANT, SHOULD BE SAME WIDGET!
        }
        // Fallback in case no data
        else {
          return const Center(child: Text('Unexpected state'));
        }
      },
    );

https://github.com/user-attachments/assets/42ed3578-6d82-4a22-85b7-bff5ede978a4
https://github.com/user-attachments/assets/ac394448-3662-4be6-ba79-d5c6c76fc238

@nparoski Your efforts are appreciated, but this is not Stackoverflow. The discussion should focus around the issue, steps to reproduce it, and potential fixes.
The only solution right now is to make sure your redirection handler is not asynchronous. There are plenty of ways to achieve that with the existing version of Flutter, so I would suggest that you focus on that instead.
Just to remind you: Every time you comment here, it's "spamming" all the people who are subscribed to the thread; which includes 11 other people at the moment. 😉

There are plenty of ways to achieve that with the existing version of Flutter, so I would suggest that you focus on that instead.

I'd like to know more about this? As at this point I think my redirect should be async unless I want to grab stale data.
@benPesso Understandable, intention was to provide solid workaround for people who do need redirect to be async instead of telling them to not make it async.
Personally I like to see history of how things come to be, especially if I'm in need of solution I guess that's where we differ.
Just to remind you: There's also notification settings.

@nparoski I get where you're coming from. Many of us appreciate seeing a history of discussions, especially when searching for solutions. It's a fine balance between keeping threads focused and making sure useful details are shared.
To answer your question: Unfortunately, with the current constraints, it's not possible to perform an async redirect without encountering the black screen during the transition. The best approach is to complete all async tasks before triggering the navigation. For example, you can check the auth state by moving it into a checkAuthState() function within your doSomethingAndNavigate() method. With proper planning, you can implement a robust framework around your pages and routes to handle this more efficiently, avoiding manual repetition for every page.
I hope this helps! If you're looking for more resources, you want to contribute your input to this StackOverflow question.


Toggle refinement not working after facetFilters initialization

Do you want to request a feature or report a bug?
bug

Bug: What is the current behavior?
Initial search filters
  searchParameters: {
    page: 0,
    hitsPerPage: 100,
    disjunctiveFacetsRefinements: {
      is_popular: [true, 'true'],
      is_full: [false, 'false']
    },
....

The above works as expected. Hits are filtered correctly.
However, following this clicking on one of the prefiltered toggles e.g. is_full does not filter the search.
Here is an example toggle filter setup
search.addWidget(
  instantsearch.widgets.toggle({
    container: '#refinement-list4',
    attributeName: 'is_popular',
    label: 'Is Popular',
    values: {
      on: true
    },
    templates: {}
  })
)

Note if I remove initial filtering from the config the toggles work as expected.
Here is a live demo:
http://sfhotevents.ml/
Bug: What is the expected behavior?

Initial filters applied on first page load
Toggles should work e.g. clicking Is not full see http://sfhotevents.ml/

Bug: What browsers are impacted? Which versions?
all, all
Bug: What is the proposed solution?
not sure
Feature: What is your use case for such a feature?
Have an initial facet refinement which can be removed by the user via toggles
http://sfhotevents.ml/
Feature: What is your proposed API entry? The new option to add? What is the behavior?
not sure
What is the version you are using? Always use the latest one before opening a bug issue.
<EMAIL_ADDRESS>

the source of that site: https://github.com/mfbx9da4/hotevents

@mfbx9da4 you're initializing the disjunctive facets with two values. Can you try with only the strings and a single value?

Hi Still waiting on an answer. Help would be much appreciated. The site is back up. Thanks

Using one value and only strings as suggested I get zero results.

Using one value and only booleans like so:

I get the following error:

Although I do get results but they are not filtered as expected and the widgets appear mangled

Not using any initial configuration the filtering / toggling widgets work correctly but I need an initial filtering for my use case.
Starting to feel that instantsearch comes with too much magic. Is there a web client for doing all refinement myself?
Thank you for reading

@mfbx9da4 I've contacted you directly through the Algolia support to help us further investigate what's going on here :) I'll reopen this ticket if we find an actual bug :)

Here are two samples I've made:

reproducing the original issue
with the issue fixed

In order to fix the issue, you need to only use a single value for the filter and use the string form of the value like so:
var search = instantsearch({
  // Replace with your own values
  appId: 'JTH1JDTDFT',
  apiKey: '1d8e2d4aa2a19623ee5fc10fb0d85f83', // search only API key, no ADMIN key
  indexName: 'test-is-toggle',
  searchParameters: {
    disjunctiveFacetsRefinements: {
      "is-popular": ["true"],
    }
  }
});


Might be worth adding no_useless_return to StyleCI

It's fine.


how do i know which section selected under the cursor?

is there a way tell me which section selected by mouse?
so i can toggle visibility of section by mouse click

Do you want this to occur at runtime or during editor?

runtime

hi dude I also has this problem, can it occur at runtime?

This should in theory work as of a few minutes ago with the source version and 4.17+ using the raytrace tooling but it's untested as of tonight.

Hello,
All existing issues for RMCv2 are being closed as RMCv2 is no longer being supported.  RMCv3 is in beta here : https://github.com/Koderz/RuntimeMeshComponent/tree/Version3Dev
If you encounter this or any new issues in v3 please feel free to open a new issue!
Thanks!
-Koderz


Compatibility with Ansible <IP_ADDRESS>

When it is executed with Ansible <IP_ADDRESS> fails caused by undefined groups or variables.
NONE

Ansible <IP_ADDRESS> or higher is currently required. Support for anything lower is considered out of scope and is unfortunately not actually possible at this point without removing the use of new Ansible features. Closing, but feel free to rebase/reopen if this is still an issue with Ansible <IP_ADDRESS> or higher.


TIM-321 Refactor rooms description on rooms page

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#59  👈
#58
#57
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tamrivera05 and the rest of your teammates on  Graphite


Licensing issues

Hi,
We are using Spring-Boot and Json Doc in a project. Before delivery, we have to go through a license check and we found an issue in this project.
Its license is MIT, but the project is using the JLinq library in the jsondoc-ui-webjar module (which we are using), which as a CC license.
First problem is that The CC license requires attribution (quoted): You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
=> So there should be a place somewhere in the Json Doc project where you give credit for the use of this JS library.
Second problem is that we have a policy preventing us to use this kind of CC licensing.
=> So how is this library necessary to make jsondoc-ui-webjar work ? Is it removable easily or it is required ? Would it be hard to remove this dependency or replace it by another one without licensing issues ?
Thanks!

Thank you very much for spotting this.
Regarding the first problem I added the attribution on the website in the Credits page.
Regarding the second one, the library is required for the correct functionality of the documentation page, so it could be hard to remove it. But you can implement your own documentation viewer using the json returned by the /jsondoc endpoint.

By the way, I just released version 1.2.17 in which I removed jLinq. Give time to maven central to synchronize (some hours) and then you can use the project with no worries.


Add styling to Cards

Hey @HarshAgarwal25 what kind of style you wanna add to cards?

I want to make the cards glow by giving ambient lighting to the borders.
This makes the website more attractive.

We already have that I guess.
You can raise another issue to make bottom-up button responsive.

Bottom-up is already responsive.
I want to give neon lighting to the border of all the cards

@HarshAgarwal25 go ahead.

I have two designs #139

First one looks more cool
@HarshAgarwal25 do you want to work on it ?


Add dbcleaner

Lacks GHC 8.2 support:
base-<IP_ADDRESS> is out of bounds for:

[ ] dbcleaner-0.1.2 (>=4.4 && < 4.10). Stack Builders<EMAIL_ADDRESS>@stackbuilders. @jsantos17 @jsl @sestrella. Used by: library, test-suite

Hey, it builds now.


Governance Proposal: Unlock user funds in vBUSD and vUSDT

Background
On April 12th DeFireX user vBUSD and vUSDT tokens stuck at upgradable smart-
contracts (additional info and governance proposal here: https://community.venus.io/t/proposal-defirex-stuck-money-recovery-help-needed-from-the-venus-community-team/676).
Contracts with locked funds are:

0x3b1a4f61bd3d7301edbd3ea2a5e05ede8dda812d - vBUSD
0x22b433402b65dccbe79fe66b4990a2569ab01572 - vUSDT

Upgradable-smart contracts:
0x987f04dece1c5ae9e69cf4f93d00bbe2ca5af98c
0xb7552a0463515bda8b47ab7503ca893e52c58df8
Current temporary implementation 0x9c8a83a0bfeb560dfac404132827f3c38f14d1e1 without function to withdraw user funds.
ProxyAdmin to control upgradable-smart contracts
0x98d6c44d2b25cac7c364edb7e992a77afcf3f795
changeProxyAdmin errors that leads to funds-lock
https://bscscan.com/tx/0xa295adf5250f650ed106f31c6f12fc6ff774b896f8783f97d275720810562069#eventlog
https://bscscan.com/tx/0x24c0aad2931a203f933aceeb52344196f6ea6de55e2be7f8261f85a0a290c69a#eventlog
Proposed solution
Update the implementation of vBUSD and vUSDT contracts. Add new function that will allow to unlock stuck funds.
Suggested implementation for vTokens
Forked Venus protocol: https://github.com/DeFireX/venus-protocol/blob/master/contracts/VToken.sol#L145
Deployed implementation on BSC: https://bscscan.com/address/0x1115851ee76b5f1c1ea78d20e6beb9a9f83b11af#code
Additional github repository with all required files and tests in one place:
https://github.com/DeFireX/venus-proposal
Also we created a contract that can be used for governance proposal, users can delegate votes to this contract
Source code: https://github.com/DeFireX/venus-proposal/blob/main/contracts/Proposal.sol
Deloyed contract on BSC: https://bscscan.com/address/0xde582596e0afcd2f33894a38d549c0d95a703c05#code

i have some questions about the Venus proposal. You (or someone else from your team) said that Binance would delegate enough votes on Venus to pass that proposal. However, the post on the Venus community forum incentivizes users to delegate their XVS to the DeFireX address. So should I understand that Binance will not delegate any votes after all? And that the fate of the proposal rests entirely on the community?

i have some questions about the Venus proposal. You (or someone else from your team) said that Binance would delegate enough votes on Venus to pass that proposal. However, the post on the Venus community forum incentivizes users to delegate their XVS to the DeFireX address. So should I understand that Binance will not delegate any votes after all? And that the fate of the proposal rests entirely on the community?

Delegating votes from Binance may require too much time. We use any chances to return funds back as soon as possible.

Resolved in VIP-44


Bundler requires all :path gems to be in default group

If you have a Gemfile with a local path Gem such as:
group :development, :test do
   gem 'demo', :path => "./ruby-gems/demo"
end

Even though the demo gem is not used in any non-test files; bundler will complain:
The path `uri:classloader://warbler-example/ruby-gems/demo` does not exist.

This is an issue from running within a JAR using JRuby+ Warbler
I have created a minimal example at: https://github.com/fzakaria/warbler-bundler-jruby-failure/tree/demo-development
(Specifically the demo-development branch)
Environment
jruby <IP_ADDRESS> (2.3.3) 2018-04-20 d8b1ff9 OpenJDK 64-Bit Server VM 25.232-b09 on 1.8.0_232-b09 +jit [darwin-x86_64]

Darwin MacBook-Pro.localdomain 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64

@deivid-rodriguez I did some more digging into this today.
I found the bug occurs due to dsl.rb where it tries to parse the Gemfile; specifically:
    def path(path, options = {}, &blk)
      unless block_given?
        msg = "You can no longer specify a path source by itself. Instead, \n" \
              "either use the :path option on a gem, or specify the gems that \n" \
              "bundler should find in the path source by passing a block to \n" \
              "the path method, like: \n\n" \
              "    path 'dir/containing/rails' do\n" \
              "      gem 'rails'\n" \
              "    end\n\n"

        raise DeprecatedError, msg if Bundler.feature_flag.disable_multisource?
        SharedHelpers.major_deprecation(3, msg.strip)
      end

      source_options = normalize_hash(options).merge(
        "path" => Pathname.new(path),
        "root_path" => gemfile_root,
        "gemspec" => gemspecs.find {|g| g.name == options["name"] }
      )
      source = @sources.add_path_source(source_options)
      with_s

Since this is run within the JAR & the :development group is excluded from being included; the :path is not resolvable.
This was confirmed by turning on Bundler debug & shell output:
``
Assuming that source at ./ruby-gems/demo has not changed since fetching its specs errored (The path uri:classloader://warbler-example/ruby-gems/demo does not exist.)
Following files may not be writable, so sudo is needed:
uri:classloader:
uri:classloader:/
uri:classloader:/META-INF
uri:classloader:/com
uri:classloader:/jline
uri:classloader:/jni
uri:classloader:/jnr
uri:classloader:/jruby
uri:classloader:/me
uri:classloader:/org
uri:classloader:/tables
Found changes from the lockfile, re-resolving dependencies because the lockfile does not have all gems needed for the current platform

Eventually in **definition.rb**; it's trying to re-resolve all the gems

```ruby
    def resolve
      @resolve ||= begin
        last_resolve = converge_locked_specs
        resolve =
          if Bundler.frozen_bundle?
            Bundler.ui.debug "Frozen, using resolution from the lockfile"
            last_resolve
          elsif !unlocking? && nothing_changed?
            Bundler.ui.debug("Found no changes, using resolution from the lockfile")
            last_resolve
          else
            # Run a resolve against the locally available gems
            Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
            last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
          end

        # filter out gems that _can_ be installed on multiple platforms, but don't need
        # to be
        resolve.for(expand_dependencies(dependencies, true), [], false, false, false)
      end
    end

(hitting the third if statement)
I'm not sure what the correct fix is here.

Thanks @fzakaria for the investigation.
I'll try to have a look at some point, not sure when though, but the repro and your investigation is motivating!

Appreciate that;
I can't find yet why path is different than rubygem dependencies.
In both cases the :development or :test group are not in the JAR; however it tries to actually find the :path and barf.

Okay found the culprit!
Synopsis
Okay I put a bunch of puts to help me understand the flow (difficult to pry since it's running with a JAR)

When one calls bundler via  Bundler.setup(:group_a); even though a group is listed, the first thing Bundler will do is parse the Gemfile through the class `Bundler::Dsl``.

This class will collect all dependencies irrespective of the group.

Eventually Bundler::Definition#converge_locked_specs is called;

It will fail to find the :path of the missing Gem and exclude it from the "converged list"

Bundler::Definition::resolve will then try to resolve fresh the gems & obviously fail

Fix
I can test a fix by removing the following section in definition.rb
        # Path sources have special logic
        if s.source.instance_of?(Source::Path) || s.source.instance_of?(Source::Gemspec)
          other_sources_specs = begin
            s.source.specs
          rescue PathError, GitError => e
            # if we won't need the source (according to the lockfile),
            # don't error if the path/git source isn't available

            next if @locked_specs.
                    for(requested_dependencies, [], false, true, false).
                    none? {|locked_spec| locked_spec.source == s.source }

            raise
          end

          other = other_sources_specs[s].first

          # If the spec is no longer in the path source, unlock it. This
          # commonly happens if the version changed in the gemspec
          next unless other

          deps2 = other.dependencies.select {|d| d.type != :development }
          runtime_dependencies = s.dependencies.select {|d| d.type != :development }
          # If the dependencies of the path source have changed, unlock it
          next unless runtime_dependencies.sort == deps2.sort
        end

With that change; the JAR starts up happy.
Specifically, I think the following is wrong.
            # if we won't need the source (according to the lockfile),
            # don't error if the path/git source isn't available

            next if @locked_specs.
                    for(requested_dependencies, [], false, true, false).
                    none? {|locked_spec| locked_spec.source == s.source }

Should it not test also that the gem is in the requested groups as well?

That's as far as I can go; today.


Please, make dist.libuv.org sorted by date!

Please, make http://dist.libuv.org/dist sorted by descending date, so the newer releases are on top of the page.
Now it's sorted by name with no user sorting choice.
But, by doing so v1.11.0 comes before v1.2.0 and after v1.1.0 which makes the search for newer versions rather difficult.

It's nginx's default directory listing.  I don't think it lets you customize it like you want.

Maybe we could use https://github.com/aperezdc/ngx-fancyindex (if it's packaged for Ubuntu, that is)

I see that nginx is not as flexible as Apache:
https://www.nginx.com/resources/wiki/modules/fancy_index/
But in my opinion this is not just "fanciness": the usability of that website would improve greatly!

Well, we're not switching web servers, that's for sure :-)
-Saúl

On 14 Mar 2017, at 15:12, notorand-it<EMAIL_ADDRESS>wrote:
I see that nginx is not as flexible as Apache:
https://www.nginx.com/resources/wiki/modules/fancy_index/
But in my opinion this is not just "fanciness": the usability of that website would improve greatly!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Well, we're not switching web servers, that's for sure :-)

Sure, you're not: it'd make no sense as there seems to be an easier solution.
I think it makes sense to have a different file sorting, though.
Or at least a "usual user selectable" as seen in http://www.dm.unipi.it/~carminat/CP2014/

We could put up a static HTML page that is regenerated hourly or so from the git tags.  Wouldn't be hard to write and could run as a cron job but I don't know who actually administers dist.libuv.org.  Is that your machine, Saúl?

Nope, it used to be a SmartOS zone, but it's now some ubuntu. You should be able to SSH into it.
How about creating some "latest" symlink as part of the dist process? Coincidentally, it will always be the first entry.
-Saúl

On 14 Mar 2017, at 19:34, Ben Noordhuis<EMAIL_ADDRESS>wrote:
We could put up a static HTML page that is regenerated hourly or so from the git tags. Wouldn't be hard to write and could run as a cron job but I don't know who actually administers dist.libuv.org. Is that your machine, Saúl?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

#1251

The build group hosts dist.libuv.org. Happy to help out. I think the fancy index module is available through nginx-extras but I need to do some testing before we start using it (if that's what we would prefer).

I think the fancy indexing module is the correct solution.
But, of course, I also think it's not up to me to decide.
Whatever solution is better, in my opinion, than the current weird sorting.

I rather like the scripted approach.  It lets us add things like release notes later on.

I rather like the scripted approach. It lets us add things like release notes later on.

Right on!

Correct! But there will be a delay between updates and any error in the script will produce bad HTML.
But, anything is better than nothing!

I think this can be done at the configuration level:
https://www.nginx.com/resources/wiki/modules/fancy_index/
Please, do so as it makes more sense.
And in my opinion, you should sort with "date descending" so newer stuff is on top.

The current situation in the https://dist.libuv.org/dist/ site is really confusing.
Latest version download link (v1.20.0) is buried deep into the list, between v1.2.1 and v1.3.0.
The webserver can do a "fancy indexing" with latest timestamp on top thanks to an open source module.
One could even create a symlink called "000LATEST" pointing to the latest file and being displayed at the top.

Is it just me or the lexicographical sort order is something confusing and useless in this very case? If it's just me, please comment and close this issue.
If it's not, then please react.


Lesson about search builders

Blacklight generates app/models/search_builder.rb into your application. It defaults to including Blacklight::Solr::SearchBuilderBehavior which are functions to allow blacklight to talk to solr (vs another search engine).  Hydra generates include Hydra::AccessControlsEnforcement for filtering
searches by access (groups & users).  Finally Hyrax generates include Hyrax::SearchFilters which overrides the hydra filters and allows users with the admin role to see all documents.
Hyrax then sets the blacklight_config.config.search_builder_class = Hyrax::CatalogSearchBuilder in the catalog controller. This enables the public search to not show works that are suppressed (in workflow) and to find a work if an attached file matches the search query.
Hyrax::CatalogSearchBuilder inherits from Hyrax::SearchBuilder
https://github.com/projecthydra-labs/hyrax/blob/master/app/search_builders/hyrax/catalog_search_builder.rb  (This class should be removed because it's basically the same as ::SearchBuilder)
Hyrax::SearchBuilder inherits from Blacklight::SearchBuilder
https://github.com/projecthydra-labs/hyrax/blob/master/app/search_builders/hyrax/search_builder.rb
Blacklight::SearchBuilder is a plain old Ruby object
https://github.com/projectblacklight/blacklight/blob/v6.8.0/lib/blacklight/search_builder.rb

Related discussion on how things that inherit from Hyrax::SearchBuilder  aren't customizable via usual BL methods of customizing ::SearchBuilder, and it's unclear what the intended story for customization is.
https://github.com/projecthydra-labs/hyrax/issues/707
@jcoyne , if you wanted to chime in there on what was intended here, what was a mistake what was not etc, what was the intention, to the extent you know, it would be helpful!

@jrochkind the intent is for this to be a first draft of some documentation about the Search builder. Feel free to note some things here, but the idea is that this would become a webpage once this branch is merged: https://github.com/projecthydra/projecthydra.github.io/tree/refactor_docs
Revisions might be easier after that point.

So, we have a how and why intro to customizing Search Builders and their ancestry structure, here: https://github.com/projecthydra/curation_concerns/wiki/Solr-Search-Builders. We plan to keep all docs like this under developer resources.
We also have a page/section for how searches work generally in our new docs, here: https://github.com/projecthydra/projecthydra.github.io/blob/refactor_docs/pages/hydra/developer_resources/what-happens-search.md
I'll make incorporating the customizing Search content into the developer resources section a high-priority action item. Do you want a page for what a better inheritance model of Search could look like? If yes, we'll make an action item of it - and it might be that a section on refactoring could add to the docs. Anyone interested could add that to the CfP for the docs working group. @jcoyne @jrochkind @atz

@jenlindner the wiki page in CC looks great. I didn't know it existed.  It would be great to pull that in here.

Deployed.


Give credit where credit is due

For libraries that we're bringing into the Exercism org but where there's been a central creator, I'd like to add an authors section ensuring the original creator is properly credited, and also that they don't implicitly end up with later work attributed to them that they may not want attributed to them. I've tried to word this to meet those requirements but entirely open to suggestions/rewording. Extra emojis also welcome!
(cc @angelikatyborska to add something similar to your work).
(I'm presuming @SleeplessByte is helping here on a moving-forward basis, but if that assumption is wrong, then feel free to delete your name etc!)

I think I've added this in another commit that is in the main branch. Great suggestion though.


Buffer issue with camera app + Virtual.mp4

I have tested this apk for months on serveral devices and it performs the same with all.
The issue is that any default camera app of any phone will crash as you take a picture from the virtual.mp4 replacement.
The picture will take place, but then crash as you attempt to take a second picture. As you reopen the camera and you go over it again it will again crash.
The issue seems that is comming from a bad translation.

log issue: "Process: com.android.camera, PID: 20075
java.lang.UnsupportedOperationException: The producer output buffer format 0x32315669 doesn't match the ImageReader's configured buffer format 0x21."

So it seems that ImageReader needs color format 0x21(nv21), but the camera format is 0x32315669. We then after have to  find what  0x32315669 format in the net.and then convert to 0x21 if possible.
If anyone manged to make this work, I can pay for the fix
Please reach out to me on tg @reptilano.

More information about the log:
[ 2023-10-03T15:18:09.568    10068:  8403:  8508 I/LSPosed-Bridge  ] Crash unexpectedly: java.lang.UnsupportedOperationException: The producer output buffer format 0x32315669 doesn't match the ImageReader's configured buffer format 0x21. at android.media.ImageReader.nativeImageSetup(Native Method)
at android.media.ImageReader.acquireNextSurfaceImage(imagereader.java:450) at android.media.ImageReader.acquireNextImage(imagereader.java:504)
at com.android.camera2.MiCamera2$2.onImageAvailable(micamera2.java:2) at android.media.ImageReader$ListenerHandler.handleMessage(imagereader.java:798)
at android.os.Handler.dispatchMessage(handler.java:107) at android.os.Looper.loop(looper.java:224)
at android.os.HandlerThread.run(handlerthread.java:67)[ 2023-10-03T15:18:09.568    10068:  8403:  8508 E/AndroidRuntime  ] FATAL EXCEPTION: CameraHandlerThread
Process: com.android.camera, PID: 8403java.lang.UnsupportedOperationException: The producer output buffer format 0x32315669 doesn't match the ImageReader's configured buffer format 0x21.
at android.media.ImageReader.nativeImageSetup(Native Method) at android.media.ImageReader.acquireNextSurfaceImage(imagereader.java:450)
at android.media.ImageReader.acquireNextImage(imagereader.java:504) at com.android.camera2.MiCamera2$2.onImageAvailable(micamera2.java:2)
at android.media.ImageReader$ListenerHandler.handleMessage(imagereader.java:798) at android.os.Handler.dispatchMessage(handler.java:107)
at android.os.Looper.loop(looper.java:224) at android.os.HandlerThread.run(handlerthread.java:67)

Me too, how to fix

I also got the same issue with error:
java.lang.UnsupportedOperationException: The producer output buffer format 0x1000 doesn't match the ImageReader's configured buffer format 0x21.


Change approved label to only consider reviews from users with push access

Fixes #18

Seems fine.  Is there a way to test it?

It's not the easiest, you'd need to pull it down, build, start, and follow the installation/usage/configuration instructions in the README to set up a github bot on your account, then create a test repo and install the bot there.
I've tested to make sure it works as expected.

Updated to ignore non-push reviews regardless of type (as discussed in #18)

Looks like the review labels aren't working any more. They did work on my local tests so I can only assume that the setup of the actual repos is different.
Is there any way we can debug in-situ with netlify?

@matt-fidd yes, if you ask mattis for access, the logs are available here: https://app.netlify.com/sites/actual-gh-bot/logs/functions/webhooks (there aren't currently any errors being logged, just probot info messages).
Aug 14, 06:13:57 AM: d6585730 INFO (probot): loading app
Aug 14, 06:13:57 AM: d6585730 INFO (probot): probot loaded
Aug 14, 06:13:57 AM: d6585730 INFO (probot): webhook verified
Aug 14, 06:13:58 AM: d6585730 Duration: 1138.36 ms	Memory Usage: 144 MB	Init Duration: 454.96 ms
Aug 14, 07:12:40 AM: dac3cc79 INFO (probot): loading app
Aug 14, 07:12:40 AM: dac3cc79 INFO (probot): probot loaded
Aug 14, 07:12:40 AM: dac3cc79 INFO (probot): webhook verified
Aug 14, 07:12:42 AM: dac3cc79 Duration: 1027.19 ms	Memory Usage: 144 MB	Init Duration: 393.56 ms
Aug 14, 07:12:47 AM: 5053dae0 INFO (probot): loading app
Aug 14, 07:12:47 AM: 5053dae0 INFO (probot): probot loaded
Aug 14, 07:12:47 AM: 5053dae0 INFO (probot): webhook verified
Aug 14, 07:12:47 AM: 5053dae0 Duration: 905.84 ms	Memory Usage: 144 MB
Aug 14, 07:12:48 AM: 04987769 INFO (probot): loading app
Aug 14, 07:12:48 AM: 04987769 INFO (probot): probot loaded
Aug 14, 07:12:48 AM: 04987769 INFO (probot): webhook verified
Aug 14, 07:12:48 AM: 04987769 Duration: 7.81 ms	Memory Usage: 144 MB
Aug 14, 07:12:48 AM: 729346e4 INFO (probot): loading app
Aug 14, 07:12:48 AM: 729346e4 INFO (probot): probot loaded
Aug 14, 07:12:48 AM: 729346e4 INFO (probot): webhook verified
Aug 14, 07:12:48 AM: 729346e4 Duration: 4.40 ms	Memory Usage: 144 MB

Thanks @twk3, I've asked on Discord.
Will get a PR up for extra logging quickly.


Parse error/warning labels when under 10 characters

Summary of the bug
As in the screenshot below, current validation messages use the variable from the prop (maxCharacters, maxValue etc in ic-text-field) which parses as a number in the message.
Good design says that any number below 10 should be in text format, ie 'The maximum characters is four', rather than,  'The maximum characters is 4'.
Suggest creating a helper function which can be used throughout the kit.
📸 Screenshots or code

🧐 Expected behaviour
Values below 10 should parse as text instead on int
Additional info
I have only investigated ic-text-field for this behaviour and it may need applying in other components.

Design, do we want to do this? It would be strange to change from a number to text. Discuss


Cannot run crest using funsies

Hello, I have tried to run crest using funsies:
"""Generate a single conformer from a SMILES string."""
from __future__ import annotations

import argparse
import funsies as f
from funsies.types import Encoding

parser = argparse.ArgumentParser(
    description="Compute the spectrum of a molecule using the Vertical Gradient method."
)

parser.add_argument("-c", "--charge", help="charge", type=int, default=0)

args = parser.parse_args()

CHARGE = args.charge

xtbopt = "/home/leticia/Projects/SN1/xtbopt.xyz"
with f.Fun():
	crest_conf = f.shell("crest xtbopt.xyz", inp={"xtbopt.xyz": xtbopt}, out=["crest_best.xyz"], env={"OMP_NUM_THREADS": "40"})

But I got this error:
if you don't want it to be converted to json (and wrapped with "),
you NEED to pass it as bytes (by .encode()-ing it first)

Important:

redis-server is working properly

I had the same problem

Hi,
That's because you need to pass the content of the file as the value, not the path to the file. Something like
with open("/home/leticia/Projects/SN1/xtbopt.xyz", "rb") as fi:
    xtbopt = fi.read()

To get the data out to a file you'll need to do something like,
f.execute(crest_conf)
f.wait_for(crest_conf)
f.takeout(crest_conf.out['crest_best.xyz'], "path to output")


Did you remove "IEnumerable.FirstOrNone"?

Title.
It was very very useful and I had like 4 use cases in my tiny projects for it which was very convenient , sadly I do not find it anymore when I upgraded to "DotNext 5.7.0" :/

It was presented in 4.x but not in 5.x. It was removed in favor of C# 12 language features, e.g.:
private static void M(IReadOnlyList<int> enumerable)
{
    int? value = enumerable is [var x] ? x : 0;
}

I was not really aware of that feature, nearly forgot there are list patterns now lol, so the part in your method: enumerable is [var x, ..] does that check if their is a first valid item "var x" and then gets x  if there is, if not None is returned, but wouldnt it be sufficient to just do enumerable is [var x] ?

enumerable is [var x] checks whether the list has exactly one element.
enumerable is [var x, ..] checks whether the list has at least one element.

For IAsyncEnumerable<T>, FirstOrNone still exists because pattern matching expression is not applicable to async streams.

It was presented in 4.x but not in 5.x. It was removed in favor of C# 12 language features, e.g.:
private static void M(IReadOnlyList<int> enumerable)
{
    Optional<int> value = enumerable is [var x, ..] ? x : Optional.None<int>();
}

problem with this tho is, it cannot be used on IEnumerables, and I do not want to expose it as a list in order to check for that, cause I am using heavily lazy evaluations which in this case would be defeated by this feature.

it cannot be used on IEnumerables

That's true. There is related discussion: dotnet/csharplang#1039

Can you use IReadOnlyCollection<T> instead of IReadOnlyList<T>? List patterns are working with every type that has public Count or Length property.

If not, you can use ElementAt extension method which is still exist. Otherwise, we can consider FirstOrNone to be added back.

Please consider it mate, its very strong and expressive and useful.

There is a problem with code signing step in CI pipeline. Trying to resolve it with .NET Foundation team, sorry for the delay.

There is a problem with code signing step in CI pipeline. Trying to resolve it with .NET Foundation team, sorry for the delay.

dont worry, there is no hurry with this, I have written an example for now myself, so all good, take your time

Finally published.


Fix NPE when splitting and unloading bundle

Motivation
In v1.22.1 or later, NPE often occurs when a bundle is splitted and unloaded.
https://gist.github.com/massakam/39b10ab273771924e8ccc458fa83b7e0
NPE occurs in the following line. It means that the bundle is not included in ownershipCache.
https://github.com/apache/incubator-pulsar/blob/e548aa28505c3e0d40944751c85fbc9360cfcb7d/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java#L506
I think that what we should pass to updateFuture is not the left element of splittedBundles but the right one.
https://github.com/apache/incubator-pulsar/blob/e548aa28505c3e0d40944751c85fbc9360cfcb7d/pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java#L625
The left element seems to be all bundles under the namespace. Some of them are not owned by the broker and not included in ownershipCache.
cf. https://github.com/apache/incubator-pulsar/pull/1428
Modifications
Fixed NamespaceService to pass the left element of splittedBundles (list of bundles owened by the broker) to updateFuture.
Result
NPE will no longer occur and the splitted bundle will be unloaded properly.

rerun integration tests

rerun integration tests

rerun integration tests

@massakam the integration tests are having issues right now (unrelated from this pr). In any case they won't prevent from merging this.


C'ant build my project for android

It's my first time using this package and I'm having this error on unity 2020.3.22f1
InvalidOperationException: The build cannot be appended. UnityEditor.BuildPipeline.BuildPlayer (System.String[] scenes, System.String locationPathName, System.String assetBundleManifestPath, UnityEditor.BuildTargetGroup buildTargetGroup, UnityEditor.BuildTarget target, UnityEditor.BuildOptions options, System.String[] extraScriptingDefines) (at /home/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline.bindings.cs:329) UnityEditor.BuildPipeline.BuildPlayer (UnityEditor.BuildPlayerOptions buildPlayerOptions) (at /home/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline.bindings.cs:295) UnityEditor.BuildPipeline.BuildPlayer (System.String[] levels, System.String locationPathName, UnityEditor.BuildTarget target, UnityEditor.BuildOptions options) (at /home/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline.bindings.cs:290) Build.DoBuildAndroid (System.String buildPath) (at Assets/Scripts/Editor/Build.cs:44) Build.DoBuildAndroidLibrary () (at Assets/Scripts/Editor/Build.cs:23)

@finbuld Did you solve this? If you did, how?


Add Datera storage plugin

Features:

Zone-wide and cluster-wide primary storage support
VM template caching automatically on Datera, the subsequent VMs can be created instantaneously by fast cloning the root volume.
Rapid storage-native snapshot
Multiple managed primary storages can be created with a single Datera cluster to provide better management of

Total provisioned capacity
Default storage QoS values
Replica size ( 1 to 5 )
IP pool assignment for iSCSI target
Volume Placement ( hybrid, single_flash, all_flash )

Volume snapshot to VM template
Volume to VM template
Volume size increase using service policy
Volume QoS change using service policy
Enabled KVM support
New Datera app_instance name format to include ACS volume name
VM live migration

Description

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):
How Has This Been Tested?

Hey @rhtyd, can we try to get this PR into the 4.13 branch before the RC is cut?
Let us know if there are any outstanding items needed for this to be included.  Thanks...

@swill it depends. Is this PR code complete and ready for review.
If this is ready for review we can kick regression smoke tests and merge this on master as soon as this meets our merging guideline (2 lgtms, no regressions).

ping @jcsdatera @swill ?

Thank you @rhtyd, I have updated client/pom.xml.

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-41

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-45

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-46

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@jcsdatera @swill the PR fails to start the management server with the error:
2019-06-27 04:08:36,762 WARN  [o.a.c.s.m.c.ResourceApplicationContext] (main:null) (logid:) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.apache.cloudstack.spring.lifecycle.ConfigDepotLifeCycle#0': Unsatisfied dependency expressed through field 'configDepotAdmin'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider] for bean with name 'dateraDataStoreProvider' defined in URL [jar:file:/usr/share/cloudstack-management/lib/cloudstack-<IP_ADDRESS>-SNAPSHOT.jar!/META-INF/cloudstack/storage-volume-datera/spring-storage-volume-datera-context.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider
2019-06-27 04:08:36,762 WARN  [o.e.j.w.WebAppContext] (main:null) (logid:) Failed startup of context o.e.j.w.WebAppContext@646be2c3{/client,file:///usr/share/cloudstack-management/webapp/,UNAVAILABLE}{/usr/share/cloudstack-management/webapp}
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.apache.cloudstack.spring.lifecycle.ConfigDepotLifeCycle#0': Unsatisfied dependency expressed through field 'configDepotAdmin'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider] for bean with name 'dateraDataStoreProvider' defined in URL [jar:file:/usr/share/cloudstack-management/lib/cloudstack-<IP_ADDRESS>-SNAPSHOT.jar!/META-INF/cloudstack/storage-volume-datera/spring-storage-volume-datera-context.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:238)
        at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:709)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:534)
...
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider] for bean with name 'dateraDataStoreProvider' defined in URL [jar:file:/usr/share/cloudstack-management/lib/cloudstack-<IP_ADDRESS>-SNAPSHOT.jar!/META-INF/cloudstack/storage-volume-datera/spring-storage-volume-datera-context.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider
        at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1380)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:670)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:637)
        ... 63 more
Caused by: java.lang.ClassNotFoundException: org.apache.cloudstack.storage.datastore.provider.DateraPrimaryDataStoreProvider
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

Can you test and confirm the PR work against master? I'll rekick tests one more time.
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@jcsdatera @swill also check Travis, the jobs are failing there with same errors.

Packaging result: ✔centos6 ✖centos7 ✔debian. JID-50

Ping @jcsdatera @swill - if you'd like this to make into <IP_ADDRESS> please work with me in getting the build/run errors fixed. Thanks.

Ping @rhtyd @swill please use PR-3470 instead of this one.
Thank you

Closing this one based on your remark @manojkverma (assuming you're a colleague). cc @swill @jcsdatera


Confirm that solid:instanceContainer container contains documents containing instances?

The spec says:
"solid:instanceContainer - This predicate maps a type to a Solid container which the client would have to list to get the instances of that type."
My understanding is that this should be interpreted as
"a Solid container containing documents which the client needs to read to get instances of that type."
This interpretation provides an affirmative answer to:
https://github.com/solid/type-indexes/issues/30#issuecomment-1977393830 "A container contains documents, not instances of the given type. So does it mean I have to read all documents contained in the container and consider all instances of the type found in those documents?"
This interpretation is based on:

This seems to be how it is implemented in practice at the moment
The notion that "Linked data is a set of documents" https://github.com/solid/type-indexes/issues/8#issuecomment-1399476614

Additionally, to maintain an open world assumption, it appears that not all the documents in the container are required to contain instances of the registered type.
This may cause surprises, with clients parsing data they do not expect to parse or did not need to parse.
See e.g. https://github.com/NoelDeMartin/media-kraken/issues/34#issuecomment-2312324108

A counterexample in solidos, where the objects of ldp:contains will directly be of the class defined by solid:forClass.
:photos solid:forClass schema:Image; solid:instanceContainer  ${AlicePhotoFolder} .

https://github.com/SolidOS/solid-logic/blob/efa1982bb7c91373121c723952b8d7b1fc915e4e/test/helpers/dataSetup.ts#L68

Can you give an example of what you mean by a document  needed to read an instance and how that would be (or is) used with the type index instanceContainer?  To me instanceContainer points to a container which contains records of the type specified in the forClass e.g. image files, sioc posts,  vcard records.  I would expect each to be contained in its own resource.
To me, the case of a document that contains pointers to instances should be handled by instance, not instanceContainer.  I see these as the potential relationships between the type index and instances :
instanceContainer points to a Container whose contained resources include
* instances of the forClass (e.g. photos or email messages or vcard records)
* documents which point to instances of the forClass (?)

instance points to a subject in a resource, subject points to instances

subject points to a list or collection of instances of the forClass
subject uses its own relationships to point to instances of the forClass (e.g. skos)

instance points to a subject in a resource, subject does not point to instances

instances of the forClass point back to the subject using an inverse memberOf-like predicate

instance points to a resource

the resource contains instances of the forClass with no explicit contains predicate

Should we explicitly say these are the possibilities? Or should we limit some of them?

As an example, Umai's structure uses instanceContainer with an LDP container in which each document has a schema:Recipe object.
https://github.com/NoelDeMartin/umai/issues/22
Media Kraken uses the same pattern and here's an example:
https://jg10.solidcommunity.net/movies/example/


Ci with gh actions

Fixes #.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@25f28d6). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   69.90%
=========================================
  Files             ?        7
  Lines             ?      515
  Branches          ?        0
=========================================
  Hits              ?      360
  Misses            ?      155
  Partials          ?        0


[Fix] Fixed and refactor the code for 1.0 of 20MTD

Fixed all errors due the the release of 1.0 of 20 Minutes Till Dawn
Refactor and cleanup the code for readability
Feature:

Automatic name change when a submenu is full

@legoandmars I send you a message on Discord if you want to chat there


Multi Sensor Aggregation.

@fruiz1

The changes look good, but the sensor_data that is returned does not include the solarFlare key. Please add it and I will merge it. Thank you.

@fruiz1

even though this is old, closing in favor of #19 .


Extensions persistence

Hi ! how do you recommend configuring persistence on extensions?
I added 2 or 3 extensions and after the container removal and re-creation it appears "disappeared from disk".

The easiest way to add persistence on extensions is binding the mod directory to a data volume or to your filesystem in the docker-compose.yml file

I added a volume to the mod directory, you can try the beta labeled container to check if it works. Best regards!

I was trying to figure it, but it seems to be more problematic, since installation folder could be one of several:
https://docs.moodle.org/311/en/Installing_plugins#Installing_manually_at_the_server
or even more: https://docs.moodle.org/dev/Plugin_types

There are two approaches:

Add a volume per each directory, that will be complicated to maintain
Persist the entire /var/www/html directory, that I'm trying now on beta container
Please, try it and tell your thoughts

Best regards!


KeyError for (presumably) valid glyphs file

GlyphsLib crashes when trying to load the attached font. But Glyphs.app has no problem opening this file.
$ PYTHONPATH=Lib python Lib/glyphsLib/__main__.py -g NotLikedByGlyphsLib.glyphs
Traceback (most recent call last):
  File "Lib/glyphsLib/__main__.py", line 59, in <module>
    main(sys.argv[1:])
  File "Lib/glyphsLib/__main__.py", line 54, in main
    glyphsLib.build_masters(opt.glyphs, opt.masters)
  File "/home/sascha/src/glyphsLib/Lib/glyphsLib/__init__.py", line 88, in build_masters
    filename, include_instances=True, family_name=family_name)
  File "/home/sascha/src/glyphsLib/Lib/glyphsLib/__init__.py", line 67, in load_to_ufos
    family_name=family_name, debug=debug)
  File "/home/sascha/src/glyphsLib/Lib/glyphsLib/builder.py", line 142, in to_ufos
    ufo = ufos[layer_id]
KeyError: u'0A718E2F-231D-484E-9433-16A5230D2CE8'

The file is invalid but Glyphs seems to be able to load the file anyway.
The problem is that there are all but one masters are missing, but the layers are still there. Those layers show up as 'normal' extra layers in the only master but they are missing the 'associatedMasterID'.

This font does not crash anymore in the current master, but instead generates a bunch of warnings thanks to https://github.com/googlei18n/glyphsLib/pull/291


Turn off Allow filtering property on Table widget

https://github.com/appsmithorg/appsmith/issues/34591
Description

[!TIP]
Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).
Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.

Fixes #Issue Number
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test<EMAIL_ADDRESS>:mag: Cypress test results

[!IMPORTANT]
🟣 🟣 🟣 Your tests are running.
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/9716005298
Commit: 33f9e4d1d392a88a8ffb08b8d4d8d736b808adce
Workflow: PR Automation test suite
Tags: @tag.Widget

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[x] No

/build-deploy-preview skip-tests=true

@rahulbarwal, don't we have a test to check defaults? If yes, won't this break that test?

@rahulbarwal, don't we have a test to check defaults? If yes, won't this break that test?

Yes @nerbos, In the initial tests run none of them failed which was surprising. In the second run we have 8 failing. @jacquesikot will take over this PR to ensure everything passes.

@rahulbarwal, don't we have a test to check defaults? If yes, won't this break that test?

Yes @nerbos, In the initial tests run none of them failed which was surprising. In the second run we have 8 failing. @jacquesikot will take over this PR to ensure everything passes.

@rahulbarwal the tests that failed where jest or cypress tests?

@rahulbarwal the tests that failed where jest or cypress tests?

Cypress tests are failing. You can check the description of this PR.

@rahulbarwal is it worth having a jest to test defaults? Or this is not a practice in Engineer?


Service mount points should be predictable

Describe the bug
If I create an instance of a service from the catalog, I don't know what the name and mount point will be so I can specify that in my code.
For example, if I create a postgres-dev service called postgrestest, the secret is mounted at /configurations/x552e4168057e6c22af136063fa72-postgresql.
Expected behavior
I would expect that the mount point for reading configuration would be predictable. This would likely be the name of the service instance (/configurations/postgrestest in the example above

+1 to this... currently, we are using epinio cli to retrieve the values again.. like how this is for the wordpress
https://github.com/epinio/example-wordpress/blob/main/README.md#step-7---push-the-application
which is works but why... unless the reason is to avoid name collision for service instance

The mountpoints are created from go code, i.e. the API server ... The names are derived / the same as the configuration name.
For configurations derived from a service we know the service they are coming from (origin field in the model). We should be able to use this to make a user-readable name for the mountpoint ... Only issue will be when a service generates multiple configurations. These will require some kind of disambiguation ... Maybe a serial number ?

I was mistaken. The go code simply passes the names of the configurations into the app chart, as []string, and the chart then uses these for the volumes (names, and name of config secret), and volume mounts (vol name, and path).
To separate the paths from the config names the slice has to be changed from []string to []struct { config: string, path: string }.
Compatibility thoughts:

Old server ... comes from an old helm chart, referencing the old app chart ... is not expected to deal with applications based on the new chart.
New server ... new helm chart, will reference the new app chart ... And may have to deal with apps using the old app chart ... This is actually very similar to having to deal with application deployed with a custom chart. The active workload knows the chart it was deployed with ...
The difference. We have a change in the api chart API to deal with here. On changes the new server would use the old chart and provide the new information regarding configurations, something the old chart does not understand. This however gives us the solution as well. Provide old and new information. I.e. make the change an extension of the API ... And remove the old information a few releases later, giving users a proper transition period.
This is like we have for services still based on helm controllers. The current binary is still able to operate on HC-based services, while it does not create them anymore. In a few releases that support will go away.
Actually, we can make the extension without ever foregoing the old information.

So, instead of changing configurations from []string to the new type, keep that, and provide an additional field ... configpaths, also of type []string. This runs parallel to configurations. The old app chart will ignore this information. The new chart will use it as source of path names for the bounds configurations.
Except, this is not viable as is ... The templating cannot range over both slices concurrently ... We either have to make it a slice of a struct as noted at the top, or an object keyed by configuration name to map to the associated path name.

Spec:

Keep existing field configurations of type []string, for compatibility.
Add new field configpaths of type []struct { name : string, path : string }.

Old standard app chart uses the old field. Updated standard app chart uses the new field.


Use public folder for better security

So this is really just an initial concept, theres a lot of changes needed to widgets, themes etc to get this working properly, all I've done is the initial css and JS for the admin area.
You'd then run: php artisan vendor:publish  and choose Admin\ServiceProvider, which will then copy admin/assets to vendor/tastyigniter/admin/assets, I've updated the admin assets.json to look to those paths.
If we were to move forward I would need to go through all the admin widgets etc and make them publish too. It may make sense to consolidate all css and js into the main assets folder in admin for simplicity. Id then need to do the same for system and main, and then any extensions.
Hard to see how we can do this without it being a breaking change, but its definitely where we should be headed from a security point of view.

Replaced by https://github.com/tastyigniter/TastyIgniter/pull/840


Various agency fixes.

Ignore satellite collections in shrinkCluster in agency.
Abort RemoveFollower job if not enough in-sync followers or leader failure.
Break quick wait loop in supervision if leadership is lost.
In case of resigned leader, set isReady=false in clusterInventory.
Fix catch tests.

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/3409


Add a second verification pass for initial NS verification failures

The intent of this change is to prevent CI testing from failing due to intermittent DNS resolution issues. While we already do a second pass, it doesn't seem to resolve the issues we're seeing on particular domains. This collects the entries which failed the first round of testing and re-tests all of the failures (many/most will have already been tested twice, so this is a third and fourth attempt, but delayed).
In addition, with the prior code we don't have easy access to the entry which is is failing. With this change, the failing entries are collected into a list in both a first and second pass. If we continue to have issues with a specific domain that isn't actually a failure and something we want to remove from then list, then we can just exclude it from being reported as an error in CI testing.

I'm going to go ahead and merge this. Usually I prefer to leave PRs open for at least a day to see if anyone has comments/issues/suggestions/questions/etc. With this one, it's an intermittent issue in CI testing which is causing notable additional work by people checking out why the CI failures occurred, and the failures are relatively common (at least a couple/few per day, it seems, at least for one domain in particular).
It's not clear to me that this will really resolve the issue. We may end up having to explicitly exclude from reporting the domain which is most commonly causing the CI failures, but this should at least move us in the direction of doing that. I'll keep an eye out for additional DNS failures and see if we need to add an explicit exclusion from reporting.


presets example documentation fix

There was a trailing comma after the es2015 "presets" key.

Thanks!


Automated Load Balancer

As a tenant I can create a Load Balancer assignment to services via command line tool so that load balancers can be easily created

Kubernetes Load Balancer (service type = LoadBalancer) or at the Cloud Provider level?
I use that my for my apps haproxy container, and then I have a terraform setup to generate Load Balancer for the cluster within Openstack.

Since k8s service load balancer is designed for inter-pod communication and not recommended for HTTP (L7) lets try to adopt Vulcan proxy (http://vulcand.io) as external load-balancer as an option. We can spin-up additional instance, put there floating IP and balance all needed services dynamically from the outside world. We can even expose k8s API for external cluster management.

Alexandr - let's work with a view guys when it comes to load balancing,
they have a responsive team. Talked about it on scrum get more info on who
to contact from Valentyn
On Jul 31, 2015 7:07 AM, "Alexander Litvinenko"<EMAIL_ADDRESS>wrote:

Since k8s service load balancer is designed for inter-pod communication
and not recommended for HTTP (L7) lets try to adopt Vulcan proxy (
http://vulcand.io) as external load-balancer as an option. We can spin-up
additional instance, put there floating IP and balance all needed services
dynamically from the outside world. We can even expose k8s API for external
cluster management.
—
Reply to this email directly or view it on GitHub
https://github.com/CiscoCloud/kubernetes-ansible/issues/14#issuecomment-126703691
.

Ok, I will work on that

AVI networks guys....autocorrect :)
On Jul 31, 2015 11:55 AM, "Alexander Litvinenko"<EMAIL_ADDRESS>wrote:

Ok, I will work on that
—
Reply to this email directly or view it on GitHub
https://github.com/CiscoCloud/kubernetes-ansible/issues/14#issuecomment-126783705
.

@cdmitri I've got access to AVI Networks software. There is two pieces for OpenStack: LB VM image and OpenStack driver LBaaS. Havana or IceHouse is needed to start . Seems like i would not be able to manage CCS OpenStack to install package, all Neutron hosts should be installed with the LBaaS driver.
Anyway there is VMWare software is available, so i have starting point. Any kind of help/recommendation from you would be great at this point.

Alexander - they should have a docker container version, send them an email
Andrii has their emails....they should be setting it up on our mesos
cluster, but we should be able to just run it in docker
On Aug 6, 2015 10:47 AM, "Alexander Litvinenko"<EMAIL_ADDRESS>wrote:

@cdmitri https://github.com/cdmitri I've got access to AVI Networks
software. There is two pieces for OpenStack: LB VM image and OpenStack
driver LBaaS. Havana or IceHouse is needed to start . Seems like i would
not be able to manage CCS OpenStack to install package, all Neutron hosts
should be installed with the LBaaS driver.
Anyway there is VMWare software is available, so i have starting point.
Any kind of help/recommendation from you would be great at this point.
—
Reply to this email directly or view it on GitHub
https://github.com/CiscoCloud/kubernetes-ansible/issues/14#issuecomment-128456809
.

Has a decision been taken on what will be used for Load Balancing?
For any of the HA approaches (#15), the Load Balancer will be a key component.

We didn't decided yet. Also LB is mandatory for OpenShift and other software that runs on k8s. So this issue is kinda blocker.
Kind regards,
Alexander

20 авг. 2015, в 21:47, Kenny Jones<EMAIL_ADDRESS>написал(а):
Has a decision been taken on what will be used for Load Balancing?
For any of the HA approaches (#15), the Load Balancer will be a key component.
—
Reply to this email directly or view it on GitHub.

I think next week we'll be able to start testing AVI networks...they've
been busy with mesoscon as us too.
On Aug 20, 2015 11:47 AM, "Kenny Jones"<EMAIL_ADDRESS>wrote:

Has a decision been taken on what will be used for Load Balancing?
For any of the HA approaches (#15
https://github.com/CiscoCloud/kubernetes-ansible/issues/15), the Load
Balancer will be a key component.
—
Reply to this email directly or view it on GitHub
https://github.com/CiscoCloud/kubernetes-ansible/issues/14#issuecomment-133115341
.

Just so I understand, would any load balancer in a container theoretically work? Such as HaProxy, Vulcan, AVI, etc?

Probably it would work. But note when you need to add new TCP service on different port, you need to restart container with new port-bindings to container. Wondering what AVI guys can show to us, their LB for OpenStack is great.


[web-pubsub-client][fix] Return correct isDuplicated #24901

Packages impacted by this PR
@azure/web-pubsub-client
Issues associated with this PR
https://github.com/Azure/azure-sdk-for-js/issues/24901
Describe the problem that is addressed by this PR
isDuplicated was always returned true regardless if operation was successful or duplicated
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
No, previous test cases cover this but more can be added.
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[X] Added impacted package name to the issue description
[X] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

@om-ha could you run npm run format to fix the formatting issues?


Add a command-line flag to customize service name in traces

Description
This change allows you to give a specific name for the service in traces without doing changes on the trace aggregator side.
References
Solves https://github.com/openfga/openfga/issues/654
Review Checklist

[X] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[x] The correct base branch is being used, if not main
[x] I have added tests to validate that the change in functionality is working as expected

Thanks for the contribution @jmiettinen! I just left a couple of minor requested changes 👍 .

Sorry, I didn't have notifications on for these for some reason.


Issues loading a different hypermerge url

Hello,
I'm currently trying to simplify the Omnibox components so that an Omnibox isn't required.
More specifically, I'm trying to allow the user to simply type into a search box, and click a button that says "load" to load the new workspace from a different user.
After looking through the omnibox code, I found that the code for loading a new workspace is simply
navigate = (url) => {
    window.location = url;
    this.props.omniboxFinished();
  };

However, when trying this without the rest of the Omnibox code, it wouldn't load a new workspace. I then looked through the code more, seeing that the refreshHandle method is called on ComponentDidUpdate.I tried adding the code related to the handle to the component but to no avail.
I'm still a little stumped as to exactly what needs to happen in order for a user to load a workspace. My reasoning now is that:

First the handle needs to be refreshed, changing the hypermerge url to the new hypermerge url pasted in by the user.
Once the handle is refreshed, and watching the repo from the hypermerge url, then we can call window.location = url.

Is there an important step that I'm missing?
Thanks again for the support so far!

So the workspace is the absolute root document for a particular user. After everything passes through the Pachinko machine it winds up here: https://github.com/pvh/needle/blob/default/src/renderer/components/content-types/workspace/Workspace.tsx#L145
This causes the Root.tsx to re-render and then everything follows on from there. Does that help? You can just throw out the whole Omnibox and call setWorkspaceUrl(newUrl) on Workspace if that helps.

Also, happy to jump on a Zoom some time this week and talk things through. Just ping me on the Automerge Slack. I'll be around.

Just gave this a go and it worked perfectly! For some reason, I didn't seem to find the props.openDoc() function within the omnibox stuff. This simplifies things a lot for me.
I probably spent way too much time trying to figure this out before making this issue, so I really appreciate the fast response.
Thanks again, Peter!

Spending that time probably had other benefits but I'm happy to help when I can. Feel free to hit me up a little earlier in the process next time or just inquire on Slack.


Added note about noderestriction labels issue-#31972

This pr adds a new section titled as-Managed Node Labels , on the page-Creating a cluster with kubeadm.

I don't think this change is factually correct

The change is quite accurate.

SIG Architecture folks might be able to confirm authoritatively. I mentioned SIG Architecture because this mention of restriction / lack of restriction cuts across at least 3 SIGs: auth, cluster lifecycle, and node.

I don't think that is needed. There is some history around node-role labels and they are considered non-core at this point. You can read here:
https://github.com/kubernetes/enhancements/blob/926a1238304eba922be389a99d51c36cda3510ed/keps/sig-architecture/1143-node-role-labels/README.md
The fact they are in the kubernetes.io namespace is the only factual restriction as per the NodeRestriction controller implementation.

This is OK to merge, but I'll open another issue to fix the wording. It's really not clear enough.
/approve

Thanks @PriyanshuAhlawat!
PS. I just noticed that the PR title will trigger a Prow warning when we merge this into dev-1.24 - I didn't spot this before approving.