[go_router] Add support for the TabView for more beautiful animation

Use case
In our app we are using a TabBar with TabView. This create a nice animation when using the tabs.

Now with go_router 5.0.0 we can use a ShellRoute but it returns the child in a Navigator. This works but we are losing the nice animation when switching tabs with a TabView.
I was thinking maybe we can create a TabBarShellRoute which gets wrapped in a DefaultTabController and then returns a child as a TabView with all the child routes inside of which each have their own Navigator.
Then maybe create a TabViewGoRoute which doesn't have a pageBuilder and of which the child routes are a list of the normal GoRoute objects.

Proposal
TabBarShellRoute(
  navigatorKey: _homeTabBarShellNavigatorKey,
  builder: (context, state, child, controller) => HomeTabShell(
    controller: controller,
    child: child,
  ),
  routes: [
    TabViewGoRoute(
      name: TransactionsTab.name,
      path: '/transactions',
      builder: (context, state) => const TransactionsTab(),
    ),
    TabViewGoRoute(
      name: SavingsBalancesTab.name,
      path: '/savings-balances',
      builder: (context, state) => const SavingsBalancesTab(),
      routes: [
        GoRoute(
          name: OpenSavingsPage.name,
          path: 'open-new',
          parentNavigatorKey: _rootNavigatorKey,
          builder: (context, state) => const OpenSavingsPage(),
        ),
      ],
    ),
  ],
),

Perhaps this can also be solved with a solution like the one I proposed in a comment to #99124. That change proposes a new ShellRoute subclass, that doesn't create a navigator, but instead delegates navigation handling to the child of the shell route.
I was also able to create a workaround without modifying go_router itself - see example in this gist. In that example, a custom ShellRoute subclass is also created, which simply bypasses the navigator of the shell route. Perhaps this example could also be adapted to your use case.

This feature can be added once https://github.com/flutter/packages/pull/2650 is landed

+1 for TabView support. You can also support PageView (in case we don't have tabs and want to scroll pages by gesture).
Both TabView and PageView are supported in auto_route https://pub.dev/packages/auto_route#tab-navigation, but in ugly manner (it requires its own sub-router, so routing is smeared over the application).

any updates?

Some have solution for this issue? Instead of auto_route package

Some have solution for this issue? Instead of auto_route package

Unfortunately, go_router is still far behind auto_route.

This feature can be added once flutter/packages#2650 is landed

The great flutter/packages#2650 PR has finally been merged! I understand, though, that animations were out of the scope. Are there any hopes for adding TabView or PageView support, so we can take profit of those animations?
Or maybe there is another workaround to use those animations with the current StatefulShellRoute, but I couldn't figure out how. Maybe @tolo or @chunhtai has an opinion there.

There is a CustomStateShellRoute example, I used the PageView like this.
// GoRouter
final routerConfig = GoRouter(
  initialLocation: '/central-manager',
  navigatorKey: _rootNavigatorKey,
  routes: [
    StatefulShellRoute(
      // builder: (context, state, navigationShell) {
      //   return HomeView(navigationShell: navigationShell);
      // },
      builder: (context, state, navigationShell) => navigationShell,
      navigatorContainerBuilder: (context, navigationShell, children) {
        return HomeView(
          navigationShell: navigationShell,
          children: children,
        );
      },
      branches: [
        StatefulShellBranch(
          routes: [
            GoRoute(
              path: '/central-manager',
              builder: (context, state) {
                return const CentralManagerView();
              },
              routes: [
                GoRoute(
                  path: 'peripheral',
                  builder: (context, state) {
                    final eventArgs = state.extra as DiscoveredEventArgs;
                    return PeripheralView(
                      eventArgs: eventArgs,
                    );
                  },
                  onExit: (context, state) {
                    return true;
                  },
                ),
              ],
            ),
          ],
        ),
        StatefulShellBranch(
          routes: [
            GoRoute(
              path: '/peripheral-manager',
              builder: (context, state) {
                return const PeripheralManagerView();
              },
            ),
          ],
        ),
      ],
    ),
  ],
);

// HomeView
class HomeView extends StatefulWidget {
  final StatefulNavigationShell navigationShell;
  final List<Widget> children;

  const HomeView({
    super.key,
    required this.navigationShell,
    required this.children,
  });

  @override
  State<HomeView> createState() => _HomeViewState();
}

class _HomeViewState extends State<HomeView> {
  late final PageController _controller;

  @override
  void initState() {
    super.initState();
    _controller = PageController(
      initialPage: widget.navigationShell.currentIndex,
    );
  }

  @override
  Widget build(BuildContext context) {
    final navigationShell = widget.navigationShell;
    final children = widget.children;
    return Scaffold(
      // body: navigationShell,
      // body: AnimatedBranchContainer(
      //   currentIndex: widget.navigationShell.currentIndex,
      //   children: widget.children,
      // ),
      body: PageView.builder(
        controller: _controller,
        onPageChanged: (index) {
          navigationShell.goBranch(
            index,
            initialLocation: index == navigationShell.currentIndex,
          );
        },
        itemBuilder: (context, index) {
          return children[index];
        },
        itemCount: children.length,
      ),
      bottomNavigationBar: BottomNavigationBar(
        onTap: (index) {
          navigationShell.goBranch(
            index,
            initialLocation: index == navigationShell.currentIndex,
          );
        },
        items: const [
          BottomNavigationBarItem(
            icon: Icon(Icons.radar),
            label: 'Central',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.sensors),
            label: 'Peripheral',
          ),
        ],
        currentIndex: widget.navigationShell.currentIndex,
      ),
    );
  }

  @override
  void didUpdateWidget(covariant HomeView oldWidget) {
    super.didUpdateWidget(oldWidget);
    final page = _controller.page ?? _controller.initialPage;
    final index = page.round();
    debugPrint('index: $index');
    if (widget.navigationShell.currentIndex == index) {
      return;
    }
    _controller.animateToPage(
      widget.navigationShell.currentIndex,
      duration: const Duration(milliseconds: 300),
      curve: Curves.linear,
    );
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }
}

You already have a StatefulShellRoute.indexedStack It now should be easy to implement StatefulShellRoute.pageView. It essentially would be the same, but with a beautiful swipe animation between the screens. Looking forward for it!

Any update on StatefulShellRoute.pageView ?


Add baselines for turnstile requirements

@russell-d-e How do you imagine baselines fitting into the turnstile example? My understanding is that we have two versions of the requirements already. Are there other versioned artifacts that we should create baselines for?
Are there other unversioned entities that you could imagine having baselines? I'm thinking even though we only have one version of the software that we could still create a release baseline for it. What else would make sense to have a formal, named release in a project like Turnstile?

@glguy . I looked through this pull request you have in this is a really good start for an example of baselines.  Something that I think we should add is what we talked about with baseline hierarchies. So what I think we could add is one SW/Design baselines (v1). The two release baselines for can be created (v1 and v2).  The gist of the this is it would look something like what you might see for a doc only change, so Turnstile Release : v1 would be composed of Requirements Package : v1 and SW Design and Code : v1; Turnstile Release : V1.1 would have Requirements Package : v1.1 and SW Design and Code : v1.   The you could have release 1.1 to be derived from v1.
I think this would show a pretty good example of how baselines can be combined, refined, and used in hierarchy and with requirements.
This example could be further expanded by adding baselines associated with Testing. This might be a interesting example in that I believe that the testing is all referencing the v1 requirements; this could be interesting to show the lack of testing evidence associated with v1.1 compared to v1.
Beyond that I think there is a lot of different baselines examples that we could expand to include things like open/closed change drivers, but a lot of these would requirement creating additional data as part of the turnstile example.

@russell-d-e I think I've incorporated all of your ideas into the current PR


Youtube live chat downloader fails when cookies are provided

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2<IP_ADDRESS>. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
Worldwide
Description
Downloading of live chat "subtitle" fails with HTTP Error 401: Unauthorized. when cookies are provided. This only occurs with streams that are currently live. For my example I am using a stream that claims it will be up 24/7, to comply with "I've checked that all provided URLs are alive and playable in a browser".
I have refreshed the cookies file I am using to test in case of outdated cookies but the issue persists. I have confirmed that the cookies file is valid and being respected by using it against a YouTube video which is not available without a valid account.
This issue does not occur:

With live stream VODs / live chat replays
When cookies are not provided

Example URL: https://www.youtube.com/watch?v=5qap5aO4i9A
Verbose log
[debug] Command-line config: ['-Uv', '--cookies', '~/cookies.txt', '--write-sub', '--sub-lang', 'live_chat', '--sub-format', 'json', '--skip-download', 'https://www.youtube.com/watch?v=5qap5aO4i9A']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2<IP_ADDRESS> (zip)
[debug] Python version 3.9.5 (CPython 64bit) - Linux-5.4.72-microsoft-standard-WSL2-x86_64-with-glibc2.31
[debug] exe versions: ffmpeg n4.4-78-g031c0cb0b4-20210701 (setts,fdk), ffprobe n4.4-78-g031c0cb0b4-20210701
[debug] Optional libraries: keyring, sqlite
[debug] Proxy map: {}
yt-dlp is up to date (2<IP_ADDRESS>)
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=5qap5aO4i9A
[youtube] 5qap5aO4i9A: Downloading webpage
[debug] [youtube] Extracted SAPISID cookie
[youtube] 5qap5aO4i9A: Downloading android player API JSON
[youtube] 5qap5aO4i9A: Downloading m3u8 information
[youtube] 5qap5aO4i9A: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[debug] Downloading subtitles: live_chat
[debug] Default format spec: best/bestvideo+bestaudio
[info] 5qap5aO4i9A: Downloading 1 format(s): 96
[info] Writing video subtitles to: lofi hip hop radio - beats to relax_study to 2021-11-18 00_01 [5qap5aO4i9A].live_chat.json
[debug] Invoking downloader on "https://www.youtube.com/watch?v=5qap5aO4i9A"
[youtube_live_chat] Downloading live chat
[youtube_live_chat] Total fragments: unknown (live)
[download] Destination: lofi hip hop radio - beats to relax_study to 2021-11-18 00_01 [5qap5aO4i9A].live_chat.json
[download] 631.63KiB at 841.00KiB/s (00:00) (frag 2)[debug] [YoutubeBaseInfoExtract] Extracted SAPISID cookie
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 1 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 2 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 3 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 4 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 5 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 6 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 7 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 8 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 9 of 10) ...
[download] Got server HTTP error: HTTP Error 401: Unauthorized. Retrying fragment 2 (attempt 10 of 10) ...
ERROR: giving up after 10 fragment retries
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/usr/local/bin/yt-dlp/__main__.py", line 19, in <module>
    yt_dlp.main()
  File "/usr/local/bin/yt-dlp/yt_dlp/__init__.py", line 795, in main
    _real_main(argv)
  File "/usr/local/bin/yt-dlp/yt_dlp/__init__.py", line 785, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2965, in download
    self.__download_wrapper(self.extract_info)(
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2942, in wrapper
    res = func(*args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1303, in extract_info
    return self.__extract_info(url, self.get_info_extractor(ie_key), download, extra_info, process)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1311, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1349, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1399, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2430, in process_video_result
    self.process_info(new_info)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2627, in process_info
    sub_files = self._write_subtitles(info_dict, temp_filename)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 3552, in _write_subtitles
    self.dl(sub_filename, sub_copy, subtitle=True)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2578, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/common.py", line 399, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/youtube_live_chat.py", line 189, in real_download
    success, continuation_id, offset, click_tracking_params = download_and_parse_fragment(
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/youtube_live_chat.py", line 140, in download_and_parse_fragment
    self.report_error('giving up after %s fragment retries' % fragment_retries)
  File "/usr/local/bin/yt-dlp/yt_dlp/downloader/common.py", line 172, in report_error
    self.ydl.report_error(*args, **kargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 881, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', tb)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 820, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())

I can't seem to reproduce this myself. Maybe YouTube has made some changes that only impacts OP's account atm?
@siikamiika maybe you know something?

I'd be happy to provide support for @siikamiika or anyone else in figuring out what the issue is here, ideally in the very near future, as I don't wish to miss opportunities for recording the chat on YouTube streams that I know will not be available after they finish.

@CetaceanNation Hi, I can't look into this now but if you want to make sure you don't miss saving the chat replay, open the chat in a new window at https://www.youtube.com/live_chat?is_popout=1&v=5qap5aO4i9A and save a HAR capture so that the chat can be recovered afterwards. Said capture can also be helpful when debugging the issue, but don't share it to everyone if it's from an authenticated session.
https://www.medianova.com/en-blog/a-step-by-step-guide-to-generating-a-har-file/

Sounds good, I've created HAR captures of working traffic for a live chat via browser and yt-dlp's attempted capture of live chat and can share privately when convenient.

It seems that the issue I am having is specifically an issue with the cookies file used in the OP. I created a new cookies file from my session today and yt-dlp gets past the second fragment when downloading. I have not overwritten the problematic cookies file in case they assist in debugging, but it's possible whatever was affecting my account is no longer active, and may not be worth writing a fix for.


Updated to support both Python 2.7 and 3.x

Can we get this into the official PyPi version? My tests heavily depend on Python 3.

@cgoldberg Do you know if it's possible to update the version on PyPI, and also this web page to say that it's now compatible with Python 3?

@jadatkins
I have some free time today, so I'll add version support info to the README, and upload the latest to PyPI.  I also want to go through un-merged PR's and see if any are still relevant.
as for https://docs.saucelabs.com/tutorials/python/   ... I hadn't even realized that SauceLabs shows my module use in their tutorial :)   I'm not affiliated with SauceLabs, so I'm unable to edit that content, and not sure who to ask.  Once I upload the new version, could you contact Sauce and see if you can track down someone to edit the tutorial?
thanks!

@jadatkins
I just uploaded sauceclient 0.2.1 to PyPI.
https://pypi.python.org/pypi/sauceclient

Hooray! I'll ask SL to update their web page.


Incorrect Bad Request response for the nodes/{node_id} endpoint

Description
The response for bad requests in the nodes/{node_id} endpoint is incorrect. currently it shows 404 page not found for invalid requests however it should show something like Bad Request or Invalid Request Format

The 404 Page not found is accurate right as the routes that requires a nodId only accepts numeric characters as shown bellow

If we want to show a Bad Request message we'll have to refactor all the routes and make them accept alphabetic characters.

Closing since the current input validation is correct and is sufficient enough.


Impossible to set CONSISTENCY SERIAL (select consistency)

Please answer these questions before submitting your issue. Thanks!
What version of Cassandra are you using?
ScyllaDB
What version of Gocql are you using?
1.7.0
What version of Go are you using?
1.22.5
The .Consistency options don't allow for setting SERIAL or LOCAL_SERIAL, despite them being supported by both Cassandra and Scylla for reads to use Paxos.
type Consistency uint16

const (
	Any         Consistency = 0x00
	One         Consistency = 0x01
	Two         Consistency = 0x02
	Three       Consistency = 0x03
	Quorum      Consistency = 0x04
	All         Consistency = 0x05
	LocalQuorum Consistency = 0x06
	EachQuorum  Consistency = 0x07
	LocalOne    Consistency = 0x0A
)

Because the driver does not allow you to session.Query("CONSISTENCY SERIAL").Exec() (get's error no viable alternative at input 'CONSISTENCY'), it seems to be currently impossible to set SELECT consistency to SERIAL

@danthegoodman1 , have you tried SerialConsistency ?
Also if you working with scyllaDB, it is better to submit issues at https://github.com/scylladb/gocql

@dkropachev sorry I was inspecting this issue more at the package level, it seems like they support it https://github.com/scylladb/gocql/blob/master/frame.go#L187-L188 but this package does not (which is strange, considering cassandra supports it: https://docs.datastax.com/en/cql/hcd-1.0/reference/cqlsh-commands/consistency.html#setting-a-consistency-level)

@danthegoodman1 according to gocql documentation (for batch: https://pkg.go.dev/github.com/gocql/gocql#Batch.SerialConsistency, for query: https://pkg.go.dev/github.com/gocql/gocql#Query.SerialConsistency) the SerialConsistency supports only conditional update/insert operations. I will test if it works this way.

And if so, the problem is there becomes no way to use that Cassandra feature in this package then.

I have tested it and compared behavior with the Python driver as well as cqlsh and ensured that everything works according to the documentation (https://github.com/apache/cassandra/blob/trunk/doc/native_protocol_v5.spec). To set SERIAL consistency you can do the following
	cluster := gocql.NewCluster("***.**.*.*:****")
	cluster.Keyspace = "test"
	cluster.SerialConsistency = gocql.Serial

or directly to query
session.Query("INSERT INTO test.test_table (id) VALUES (1) IF NOT EXISTS").SerialConsistency(Serial)

It will set the SERIAL consistency level for the serial phase of conditional updates.
After that, you can check the frame content and ensure that the serial_consistency is presented as SERIAL.
[execute id=52 FC 92 9D FB 65 5C 36 6E 37 68 E1 C6 15 87 8F params=[query_params consistency=QUORUM skip_meta=true page_size=5000 paging_state="" serial_consistency=SERIAL default_timestamp=true values=[] keyspace=]]

Not the SERIAL CONSISTENCY, CONSISTENCY SERIAL, which is used for paxos reads.
Subtle difference, but SERIAL CONSISTENCY is only used for LWTs. See how https://docs.datastax.com/en/cassandra-oss/2.2/cassandra/dml/dmlConfigConsistency.html#Readconsistencylevels is different than https://docs.datastax.com/en/cassandra-oss/2.2/cassandra/dml/dmlConfigSerialConsistency.html

@danthegoodman1 sorry for the misunderstanding, now I see the problem. Inspired by (https://github.com/scylladb/gocql/blob/master/frame.go#L187-L188) I added this feature, and now it should work properly.

Thank you!


I don't get it (relations)

Hey everybody,
I'm trying to play around with MongoDB and Laravel 5.1 using the laravel-mongodb package. But I don't get it working using relations and so on. I created a method author() in my Book model like this:
public function author() {
    return $this->embedsOne('App\Author');
}

But when I try to fetch the first books author I'm just getting the stored ID, not the author model. Any hints?
Thanks so much!

I have some additional information. Maybe this package does not work with L5.1 ?!
>>> $author = App\Author::first();
=> <App\Author #000000001fdd7ee60000000056524831> {
       _id: <MongoId #000000001fdd7ee500007f47609102d1> {
           $id: "5583ffa56e78943d518b4567"
       },
       book_id: null,
       created_at: <MongoDate #000000001fdd7ee400007f47609103f1> {
           sec:<PHONE_NUMBER>,
           usec: 150000
       },
       name: "JK Rowling",
       updated_at: <MongoDate #000000001fdd7ee700007f47609103f1> {
           sec:<PHONE_NUMBER>,
           usec: 410000
       }
   }

>>> $book = App\Book::first();
=> <App\Book #000000001fdd7eea0000000056524831> {
       _id: <MongoId #000000001fdd7ee900007f47609102d1> {
           $id: "558401656e78948e518b4569"
       },
       title: "Harry Potter",
       updated_at: <MongoDate #000000001fdd7ee800007f47609103f1> {
           sec:<PHONE_NUMBER>,
           usec: 12000
       },
       created_at: <MongoDate #000000001fdd7eeb00007f47609103f1> {
           sec:<PHONE_NUMBER>,
           usec: 12000
       }
   }

>>> $book->author = $author;
=> <App\Author #000000001fdd7ee60000000056524831> {
       _id: <MongoId #000000001fdd7ee500007f47609102d1> {
           $id: "5583ffa56e78943d518b4567"
       },
       book_id: null,
       created_at: <MongoDate #000000001fdd7ee400007f47609103f1> {
           sec:<PHONE_NUMBER>,
           usec: 150000
       },
       name: "JK Rowling",
       updated_at: <MongoDate #000000001fdd7ee700007f47609103f1> {
           sec:<PHONE_NUMBER>,
           usec: 410000
       }
   }

>>> $book->save();
MongoException with message 'zero-length keys are not allowed, did you use $ with double quotes?'

Do you guys have any idea? Here are my models:
// Author.php
<?php

namespace App;

use Jenssegers\Mongodb\Model;

class Author extends Model
{
    public function books() {
		return $this->embedsMany('App\Book');
	}
}

// Book.php
<?php

namespace App;

use Jenssegers\Mongodb\Model;

class Book extends Model
{
    public function author() {
		return $this->embedsOne('App\Author');
	}
}

I really don't know what I did wrong but after some more trying I got it working!


WIP: Dockerfile_v5.8.0, docker fails on pip install clawpack

Tries to change clawpack-v5.8.0 to clawpack-v5-8-0 and complains that metadata just says clawpack:
   ... egg=clawpack-v5.8.0 has inconsistent name: filename has 'clawpack-v5-8-0', but metadata has 'clawpack'

I haven't run into this before, and pip install works fine on my laptop.
Any ideas how to fix this?
Here's the error in context...
Step 12/20 : RUN pip install --src=/${HOME}/ --user -e<EMAIL_ADDRESS> ---> Running in ac643ef45ab3
Obtaining clawpack-v5.8.0 from<EMAIL_ADDRESS>  Cloning https://github.com/clawpack/clawpack.git (to revision v5.8.0) to //home/jovyan/clawpack-v5-8-0
  Running command git clone -q https://github.com/clawpack/clawpack.git //home/jovyan/clawpack-v5-8-0
  Running command git submodule update --init --recursive -q
  WARNING: Generating metadata for package clawpack-v5.8.0 produced metadata for project name clawpack. Fix your #egg=clawpack-v5.8.0 fragments.
WARNING: Discarding<EMAIL_ADDRESS>Requested clawpack from<EMAIL_ADDRESS>has inconsistent name: filename has 'clawpack-v5-8-0', but metadata has 'clawpack'
ERROR: Could not find a version that satisfies the requirement clawpack-v5-8-0 (unavailable)
ERROR: No matching distribution found for clawpack-v5-8-0 (unavailable)
The command '/bin/sh -c pip install --src=/${HOME}/ --user -e<EMAIL_ADDRESS>returned a non-zero code: 1

Not sure, is there somewhere that clawpack is explicitly mentioned?

@mandli: Not sure what you mean... In the Dockerfile, clawpack-v5.8.0 is explicitly mentioned but not clawpack alone. Or do you mean in setup.py?
I'm also not sure what metadata it is referring to in
<EMAIL_ADDRESS>has inconsistent name: filename has 'clawpack-v5-8-0', but metadata has 'clawpack'

That was what I was referring to I guess although there are a bunch of things in the Python but would docker really pick that up?

Since the error message said ...Fix your #egg=clawpack-v5.8.0 fragments, I tried it with simply
RUN pip install --src=/${HOME}/ --user -e<EMAIL_ADDRESS>
and it got farther, but died after a ton of gfortran/f2py errors.  This may be part of our bigger problem with recent compilers that we need to tackle.
For now, I suggest people who want to use Docker start with the v5.7.1 version and install v5.8.0 themselves within a container, which works ok.  I added this to the documentation.
Here's the final part of the error output when it dies, after all the warnings...
    In file included from /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1944,
                     from /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                     from /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/fortranobject.h:13,
                     from build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/fortranobject.c:2:
    /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
       17 | #warning "Using deprecated NumPy API, disable it with " \
          |  ^~~~~~~
    In file included from /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1944,
                     from /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                     from /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/fortranobject.h:13,
                     from build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/classic1module.c:16:
    /opt/conda/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
       17 | #warning "Using deprecated NumPy API, disable it with " \
          |  ^~~~~~~
    build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/classic1module.c:65:10: fatal error: threads.h: No such file or directory
       65 | #include <threads.h>
          |          ^~~~~~~~~~~
    compilation terminated.

    ########### EXT COMPILER OPTIMIZATION ###########
    Platform      :
      Architecture: x64
      Compiler    : gcc

    CPU baseline  :
      Requested   : 'min'
      Enabled     : SSE SSE2 SSE3
      Flags       : -msse -msse2 -msse3
      Extra checks: none

    CPU dispatch  :
      Requested   : 'max -xop -fma4'
      Enabled     : SSSE3 SSE41 POPCNT SSE42 AVX F16C FMA3 AVX2 AVX512F AVX512CD AVX512_KNL AVX512_KNM AVX512_SKX AVX512_CLX AVX512_CNL AVX512_ICL
      Generated   : none
    CCompilerOpt._cache_write[796] : write cache to path -> /home/jovyan/clawpack/build/temp.linux-x86_64-3.7/ccompiler_opt_cache_ext.py
    analyzeline: intent(callback) rpn2 is already in argument listanalyzeline: intent(callback) rpt2 is already in argument listanalyzeline: intent(callback) rpn3 is already in argument listanalyzeline: intent(callback) rpt3 is already in argument listanalyzeline: intent(callback) rptt3 is already in argument listanalyzeline: intent(callback) rpn2 is already in argument listanalyzeline: intent(callback) rpt2 is already in argument listerror: Command "gcc -pthread -B /opt/conda/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Ibuild/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/clawpack/pyclaw/classic -I/opt/conda/lib/python3.7/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.7/numpy/distutils/include -I/opt/conda/include/python3.7m -I/opt/conda/include/python3.7m -c build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/classic1module.c -o build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/classic1module.o -MMD -MF build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/clawpack/pyclaw/classic/classic1module.o.d -msse -msse2 -msse3" failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /opt/conda/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'//home/jovyan/clawpack/setup.py'"'"'; __file__='"'"'//home/jovyan/clawpack/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps --user --prefix= Check the logs for full command output.

I wonder if this is somehow related to my commit https://github.com/clawpack/clawpack/commit/77704a1824a227f16d53feca4dd10ae0daed991b.  If you remember, it used to be that setuptools would write the version number twice (e.g. clawpack-<IP_ADDRESS>.8.0) and in that commit I fixed the problem.  But perhaps I created a problem for Docker, or perhaps Docker was somehow relying on our earlier bug.

@ketch: That's possible. Looking at your commit, I wonder whether you should have deleted line 233?
Maybe it was enough to get rid of FULLVERSION but you still need VERSION in the setup_dict?

There is now a v5.9.0 version and whatever the issue was here, it has been fixed.
So I am closing this PR.


OSL-230: Check pre-generated OpenAPI schema

Description
Check pre-generated OpenAPI schema
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library
[x] Integration tests

Related Tickets & Documents

Related Issue #OLS-230

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Testing

use make test-integration

/approve


Make default PVC size configurable

Description
PVCs created by the operator by default request 1Gi of storage. The devfile API spec includes a "size" field in volume components, but it would be helpful to be able to configure the default request for creating PVCs as well.
This task is complicated by:

It's not clear what the size field in a volume component means when a common storage type is used (e.g. all volumes for all workspaces mount the same PVC
It's unclear how to manage PVC size in general, since most PVCs cannot be dynamically resized.

Additional context

even trying a custom 'projects' component with a size field didn't worked in my devfile. It was still a 1Gi PV ( from common)


chore: replaces vmware-tanzu references with carvel-dev

Resolves https://github.com/carvel-dev/setup-action/issues/262

will reopen


In itcoin_feature_solution_independent_blockchain_* could we use assert_equal() instead of assert()?

A recent CI run (link) failed.
The error log is not very useful because itcoin_feature_solution_independent_blockchain_3_of_4.py (ant its sibling 1_of_2) use simple assert(), which do not print any diagnostic message on failure:
https://github.com/bancaditalia/itcoin-core/blob/d013b54238db5eba03b95be0216efa2673c8f5b6/test/functional/itcoin_feature_solution_independent_blockchain_3_of_4.py#L113
We could rework those tests in order to use assert_equal(), which on failure would print a comparison of the expected and the actual values.

Done in 13eddb7706447b3b48d8c33066c6d90b8bbd3826


Editor Bug: Font styles in accordion editor don't match published version

Good to know... editor is secretly a lot of tiny react apps & has elements that need specific targeting ... (or even unrecommended !important tags due to some load order issues between GB & WP.)

Slating this for next week

I updated this in upcoming release. The code was disconnected.
We may run into some theme CSS collision issues, but the majorly broken part is fixed now.

Checking this pre-release - there was an issue with the design system component .plus-minus margin-top: 8px
Made it 0px in this version, but we can't totally link to the design system bundle until this is resolved.

Closing this issue as it seems to be resolved.


feat: add release creation functionality and harden VHD automation pipeline

What type of PR is this?

What this PR does / why we need it:
enhances the VHD automation pipeline logic by adding retries for some operations, while also adding functionality to fully automate the creation of the SIG release using the triggered artifact build
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.969%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2627

Relevant Lines:
3458

💛  - Coveralls


TcpEndpoint.kt:19-21: Create an object that can format...

The puzzle 2-c32df101 from #2 has to be resolved:
https://github.com/kerelape/reikai/blob/a4ea7f8cc2f9ec4cc99dd99ab225c96646a43735/src/main/kotlin/me/kerelape/reikai/io/network/TcpEndpoint.kt#L19-L21
The puzzle was created by Киряев Кирилл on 20-Jul-22.
role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@kerelape since Text is introduced, this can be solved. As I just have read here, Kotlin has format strings. Can we use it for Sprintf? Implementation would be something like:
Sprintf(origin: Entity, ...args: Entity) {
    dataize() { Text(String(origin).format(..args)) }
}

I use origin: Entity because This object must accept a quantumentity of text. Am I right?

@Masynchin implement it. But since Kotlin cannot understand of what type that Entity is, it'll call the toString methods, which are going to return address of the object in the memory in most cases. So for now simply treat every arg as an Entity of text (and don't forget to mention in the doc)

The puzzle 2-c32df101 has disappeared from the source code, that's why I closed this issue.


Research- Bug: Export, Evaluate, Submit multiple quarters of emissions data

Users are unable to export, evaluate, and/or submit multiple quarters of emissions data for the same location simultaneously.
This affects the Evaluate, Export & Report, and Submit screens.
Steps to reproduce:

Open the 2023 Q1 and 2023 Q2 emissions submission windows for a location.
Import the 2023 Q1 emissions data from historical (at this point all screens function as intended).
Import the 2023 Q2 emissions data from historical.
The Reporting Periods filter on these screens will only display data for the latest quarter (2023 Q2 in this case). The 2023 Q1 data will not display when filtering on only this quarter or both Q1 and Q2.

Users should be able to evaluate, export, and/or submit multiple quarters of emissions data at the same time.
This also affects emissions data with closed windows and the Evaluate and Export & Report screens.
As it stands, a user would need to either import, evaluate, export, and/or submit the earliest quarter before even loading a later quarter into the workspace or in the case of open submission windows, submit the latest quarter of data first (should not even be allowed).
Opened #6477 to recheck submission order once this issue is fixed.

Need to determine if this is a UI issue or a database issue.


OS X monitor wake from sleep handling

kwm sometimes (Probably 1 time out of 10) freaks out during the wake from sleep "dance" (removing and adding the monitor) that OS X does to wake a 4k display.
"Freak out" means that when the display is finally awake and the computer is unlocked kwm doesn't see the main monitor at all until I killall kwm and send all the windows back to their original display. At this point the tiling is all messed, up: It is only using a portion of the main display. So I must killall kwm again, then everything is back to normal.
I am wondering if there is a different approach that chunkwm could take that would make the wake from sleep experience better?
Could tiling be disabled entirely while OS X is locked?
Could tiling be disabled while monitors are being added and removed?
I'm really unsure the best approach here, if there even is one.
All I know is having to re-arrange all my windows after a "freak out" makes me a sad panda.
Thanks!

Displays are probably not going to be tracked in chunkwm at all, at least as little as we can get away with.
I find that caching over-aggressively causes problems, and this is a prime example of exactly that.
I am experimenting with not caching any display state for now, only our virtual spaces.
Whenever we want to access a virtual space, we request the required information from the OS.
This also lets us not have to "care" about displays at all, we just talk about spaces. We want to tile a window on a space. It shouldn't matter to us if that space is on a separate display or not.
This also lets the end-user be able to always refer to a space in his system by using the index that mission control is showing during expose.
We track spaces using their UUID (same as in kwm), which is supposed to be unique and permanent (until the space is removed in mission control).
I can't say if this would cause any change in the above behaviour that you are having with kwm, but a different approach can't hurt / make it worse (hopefully..).

Displays are probably not going to be tracked in chunkwm at all, at least as little as we can get away with.

Will display commands, for example sending a window to a specific display still work?

Will display commands, for example sending a window to a specific display still work?

The plan is for this to remain a feature yes, as well as integrating https://github.com/koekeishiya/kwm/issues/277

Sending a window to a monitor can be done using chunkc window -m <prev | next | arrangement_id (same behaviour as in kwm).
Sending a window to an arbitrary space can be done using chunkc window -d <prev | next | desktop_id>
This command uses the desktop index shown in mission-control expose, and works across monitor boundaries, as described in https://github.com/koekeishiya/kwm/issues/277.
The implementation still requires quite some fixes to be worth even looking at, see mentioned todos: https://github.com/koekeishiya/chunkwm/commit/b0ff62294248b68ddf71608a910dc9f88c860d6e

Awesome, multiple monitor support is one of the last things missing from chunkwm that has been keeping me from trying it out.
Time to experiment this weekend!

Awesome, multiple monitor support is one of the last things missing from chunkwm that has been keeping me from trying it out.

Time to experiment this weekend!

Hate to break the ice, but multiple monitor support is still far and long away from usable.

I suppose this is a dupe of #45, closing this one.


Mt isa df kd

Updating the text
Suggested reviewers:

[ ] @krisdavis

Before merging: please run a spell check through your documents!
Figure updates needed:

[x]  Survey: Pseudo-sections and recovered models into 2 separate figs (with conductor on top)
[x]  2D IP (P-DP and DP-P) inversions with chifact of 4
[x]  2D IP  (merged) inversions with chifact of 4

Leave branch open for later update


fluid like tool for UI design

Is your feature request related to a problem? Please describe.
One of the best things about FLTK is the fluid ui designer which simplifies that matter a lot.
Describe the solution you'd like
A tool that parses de .fl like the one in the original C++ code but generates a corresponding .rs file.
Describe alternatives you've considered
I didn't consider any other alternatives so far, considering the existing fluid tool in the original project and the fact that this project is about a year old, and seems to work great so far
Additional context
In C++, using CMake, a automated task can be created to monitor every .fl file and generate the .h/.cpp pair (running fluid on the .fl file) when there are changes and force a recompile of the relevant sources
I apologize if some of this request is inaccurate because I come from a C++ background (and years of FLTK developement), just learning Rust from a couple of days and, thinking ahead, I know a tool of this kind will be a great bonus.

Hi
i think it’s reasonable to start with a subset of fluid’s functionality. The problem currently is that fluid itself is a bit too C++-centric.
integration of fl files should be straightforward using a build.rs file and detecting changes to the fl files.
It’ll also have to be in a separate project since by default it’ll be optional, and require its own set of dependencies.
I’ll start a prototype soonish.

Are you thinking of writing your own fluid implementation in Rust or rather of writing a .fl parser that generates Rust code from .fl files generated by fluid?

Are you thinking of writing your own fluid implementation in Rust or rather of writing a .fl parser that generates Rust code from .fl files generated by fluid?

I would probably start with an .fl parser and see how that goes. I noticed the Fltkhs (Haskell) project does that as well.

I would probably start with an .fl parser and see how that goes. I noticed the Fltkhs (Haskell) project does that as well.

And pyfltk as well, though the .fl parser flconvert is not really maintained it seems.

I've created the fl2rust repo
https://github.com/MoAlyousef/fl2rust
which is a preliminary and simplistic implementation. It might still be buggy.
I've also created a video tutorial on its usage:
https://www.youtube.com/watch?v=k_P0wG3-dNk

I've created the fl2rust repo
https://github.com/MoAlyousef/fl2rust
which is a preliminary and simplistic implementation. It might still be buggy.
I've also created a video tutorial on its usage:
https://www.youtube.com/watch?v=k_P0wG3-dNk

Excellent!
El dom., 3 de ene. de 2021 19:17, Mohammed Alyousef <
<EMAIL_ADDRESS>escribió:

I've created the fl2rust repo
https://github.com/MoAlyousef/fl2rust
which is a preliminary and simplistic implementation. It might still be
buggy.
I've also created a video tutorial on its usage:
https://www.youtube.com/watch?v=k_P0wG3-dNk
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MoAlyousef/fltk-rs/issues/411#issuecomment-753684075,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALBP4D3TAHNPASMDZCICADSYDUJJANCNFSM4VPMCVDA
.

Excellent!
El dom., 3 de ene. de 2021 19:17, Mohammed Alyousef <
<EMAIL_ADDRESS>escribió:

I've created the fl2rust repo
https://github.com/MoAlyousef/fl2rust
which is a preliminary and simplistic implementation. It might still be
buggy.
I've also created a video tutorial on its usage:
https://www.youtube.com/watch?v=k_P0wG3-dNk
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MoAlyousef/fltk-rs/issues/411#issuecomment-753684075,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALBP4D3TAHNPASMDZCICADSYDUJJANCNFSM4VPMCVDA
.

I've also published version 0.13 which should have better support for fl2rust.
So I'll close this for now.

I've also published version 0.13 which should have better support for fl2rust.
So I'll close this for now.


Revert "Remove installation of enroot and pyxis from a3-highgpu-8g blueprint"

This reverts commit c4f87dd2e59a6303e572cb203000f9e1960b257a, because slurm-v5 does not yet have pyxis built into the slurm install.
Submission Checklist
Please take the following actions before submitting this pull request.

Fork your PR branch from the Toolkit "develop" branch (not main)
Test all changes with pre-commit in a local branch #
Confirm that "make tests" passes all tests
Add or modify unit tests to cover code changes
Ensure that unit test coverage remains above 80%
Update all applicable documentation
Follow Cloud HPC Toolkit Contribution guidelines #

/gcbrun


"Shorten The URL" loads and loads and loads

Hello,
I upgraded my installation from 1.7 to 1.7.1 and now I have the issue that on click on the button "Shorten The URL" the loading-gif appears but nothing happens.
For testing I installed a brand new Yourls-installation with a new database and I get the same issue.
I also checked the config.php hundred of times but I don't get it. Everything was fine before upgrading.
PHP 5.6.13 (CGI with write-permissions)
MySQL 5.5.46
Ubuntu-Server
Checked in Firefox 42.0 and Chromium Version 45.0.2454.101 (both on Ubuntu 14.04)
Greetings
Sebastian

I'm having the same issue.

Here is the same issue but more details I hope...
The statistic when call the "+" shorten-URL is also not work for some short-links... on both I get this error in the Server-Log:
PHP Fatal error:  Call to undefined function yourls_filter_apply() in /var/www/YOURLS-PATH/includes/functions.php on line 1817
This is only called when the remote-title of the URL is determined.

See: https://github.com/YOURLS/YOURLS/issues/2000#issuecomment-162240053

Cool, thanks for the quick patch! Now it works! :)

Yup, that fixed it for me.

Oops ! Not sure how this managed to escape the unit tests... Sorry for the annoyance folks, thanks for reporting. I've re-uploaded a 1.7.1 for those who still have the problem!


Delete (rollback) deployment is dangerous

Let's consider situation when application is running and is healthy. Let the deployment be scheduled. New version of app cannot be started (for whatever) reason. Then user delete the deployments (by clicking rollback in UI or just sending DELETE on endpoint without force). Let assume that app cannot be redeployed (e.g. artifact is unavailable). After this procedure user end up with 0 running instances!
Example:

resource we can control is an URL of http server accesible from mesos agents that we can start/stop on demand (e.g. python -m SimpleHTTPServer on local machine)

Deploy application
{
  "id": "/rollbacktest",
  "cmd": "sleep 30 && wget <resource we can control> && python -m SimpleHTTPServer $PORT0",
  "cpus": 0.1,
  "mem": 32,
  "disk": 0,
  "instances": 5,
  "healthChecks": [
    {
      "path": "/",
      "protocol": "HTTP",
      "portIndex": 0,
      "gracePeriodSeconds": 5,
      "intervalSeconds": 60,
      "timeoutSeconds": 20,
      "maxConsecutiveFailures": 3,
      "ignoreHttp1xx": false
    }
  ],
  "portDefinitions": [
    {
      "port": 10486,
      "protocol": "tcp",
      "labels": {}
    }
  ]
}

Update this application
{
  "id": "/rollbacktest",
  "cmd": "sleep 30 && wget <resource we can control> && fail",
  "cpus": 0.1,
  "mem": 32,
  "disk": 0,
  "instances": 5,
  "healthChecks": [
    {
      "path": "/",
      "protocol": "HTTP",
      "portIndex": 0,
      "gracePeriodSeconds": 5,
      "intervalSeconds": 60,
      "timeoutSeconds": 20,
      "maxConsecutiveFailures": 3,
      "ignoreHttp1xx": false
    }
  ],
  "portDefinitions": [
    {
      "port": 10486,
      "protocol": "tcp",
      "labels": {}
    }
  ]
}

Application is failing.

Disable resource we can control.

Rollback to previous version.

We end up with 0 running tasks.

IMO when user want to rollback deployment, expected behavior will be to do not restart currently running application if has same version as version we want to rollback. Or behave as normal deployment and take in to account upgradeStrategy settings.
Releated to: #1554

Hi @janisz, thanks for reporting this.
I'd be interested in your thoughts (and the opinion of others as well, of course): which options exactly would you expect here? As described in #3954, I don't think that a rollback or even an automatic rollback are valid options in this scenario. So instead of defining what we would expect when rolling back a deployment, I'd rather tackle the question what do we expect in case of a failing deployment.

let the deployment fail after a timeout and keep all running tasks no matter their version
let the deployment fail after a timeout and kill all tasks that are of the new version
let the deployment fail after a timeout and kill all tasks that are not of the new version

... other options? We'll try to improve the deployment logic in the near future, so every input is appreciated.

don't kill running task that was started from the same version that you try to rolllback?

Internally we implemented stop deployment in our CI when deployments takes more time than expected. Unfortunately it was possible to rollback deployment from API/UI so we decided to rewrite DELETE  /v2/deployments/[0-8a-b-] → DELETE  /v2/deployments/[0-8a-b-]?force=true.
I'm not a fan of making the deployment fail. The criteria could vary between applications e.g., different timeouts. I'd rather leave it up to users to manually decide when it's broken. In Continuous Delivery world breaking deployment is something unusual and should be treated with special care.
My only concern is rollback functionality. Deleting all apps without taking care of minimumHealthCapacity is not acceptable. Ideally when I wan't to redeploy a version that was deployed previously and it's tasks are still running then they should not be touched (could be killed if needed to meet instances count) only new task should be spawned. But I understand approach in which all task are wiped out and spawning again. Maybe marathon should allow user to chose desired strategy like kubernetes. Actually Marathon do give a choice. User can do:

Rolling update — stop the deployment with  DELETE /deployments/<deployment id>?force=true and redeploy application
Recreate — just use  DELETE /deployments/<deployment id>

Finally, I think separated Rollback section could close this issue.

I did some research on how to fix this behavior here but unfortunately I failed and can't see easy way to do it :(

What are the problems?

I've tried to reproduce this issue using latest Mesos and it looks like problem was solved

We've hit this bug too. Which version is recommended?

Marathon 1.4 will filter the list of running tasks and only replace tasks that are not already replaced.
@janisz can you try this version?

@aquamatthias I followed steps I described https://github.com/mesosphere/marathon/issues/4046#issue-163117891 and it's not working. Rollback creates new deployment but it's not working. Applications are replaced even if they are in proper version and should not be touched.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-2340. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-2340. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


Will the vNext be released soon?

I found the exciting demo picture of vNext on the web page. It looks the footer row has been already added.
Will the new version be released soon? I can't wait to its release!
Thanks in advance!

Is it possible to divide table into parts at server side?

Sorry I do not quite understand what you mean.

Modify rendering process of gridview control so it can be presented as multi-tables, and of course it is still under control of javascript library at client side.


Calculate and include more size/area/distortion stats per resolution

When building algorithms using H3, consumers may need to satisfy specific constraints, e.g. "buffer within X meters of a given point". Our existing edgeLength and hexArea stats are averages, which is insufficient to determine whether a given resolution or buffer size will satisfy the requirement.
I think it would be worthwhile to calculate and publish (either in the library or in the docs) the following stats for each res:

min, max, mean, and stddev for
edgeLength, area, and possibly minDiameter (perpendicular edge-edge) and maxDiameter (vertex-vertex)
both with and without pentagons

It might not be worthwhile to include all of this in the lib, but publishing it would allow others to use it in their code if needed.

See #168 for more discussion of this.

https://wiki.openjdk.java.net/display/shenandoah/Main
On Tue, May 28, 2019 at 10:34 AM Nick Rabinowitz<EMAIL_ADDRESS>wrote:

When building algorithms using H3, consumers may need to satisfy specific
constraints, e.g. "buffer within X meters of a given point". Our existing
edgeLength and hexArea stats are averages, which is insufficient to
determine whether a given resolution or buffer size will satisfy the
requirement.
I think it would be worthwhile to calculate and publish (either in the
library or in the docs) the following stats for each res:

min, max, mean, and stddev for
edgeLength, area, and possibly minDiameter (perpendicular edge-edge)
and maxDiameter (vertex-vertex)
both with and without pentagons

It might not be worthwhile to include all of this in the lib, but
publishing it would allow others to use it in their code if needed.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_uber_h3_issues_240-3Femail-5Fsource-3Dnotifications-26email-5Ftoken-3DAETB2X4WRHSLZQPDRCHQTSDPXVUJHA5CNFSM4HQFSD3KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GWJFVDQ&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=rlWjtwAGNZ5IKSrj3qoQWApiqwj9NHuAuXgcsIQENTk&m=ha5wcu2QUgh5RK3G0Be5O8qkUj1iSHlIp-nxIyLAVPM&s=QlXwphRf2JatigcRobXcHikur9sCXGXPzzK5Elbo5CU&e=,
or mute the thread
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AETB2X22TO6AVXNCX44MIBDPXVUJHANCNFSM4HQFSD3A&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=rlWjtwAGNZ5IKSrj3qoQWApiqwj9NHuAuXgcsIQENTk&m=ha5wcu2QUgh5RK3G0Be5O8qkUj1iSHlIp-nxIyLAVPM&s=fhGqzYph8TTTcwsTSl_eHAZXH1tz_j8lLpNcgVwQyzk&e=
.


a couple of corrections to match modelled ids

if the rstudio project file and gitignore is an issue I can remove and resubmit

hopefully it is good now.
readr::write_csv(pscis_modelledcrossings_streams_xref_joined, "C:/scripts/bcfishpass/01_prep/02_pscis/data/pscis_modelledcrossings_streams_xref.csv",                  na = "")

Looks good, thanks Al.
@njohanley - Al matches stream_crossing_id=197669 to modelled_crossing_id=14000079 (see last row in PR).
I haven't looked at the point - any idea why you forced it to not match to a modelled crossing or a stream?
197669,,,MORR,NJO,No modelled crossing - Not a reference matching


Feature request: show parentheses in formatted expressions

Short description
When showing evaluated expressions (e.g. in the computations column when
testing an expression or an alert), the expressions are ambiguous (and
misleading) because they include no parentheses, even where they are
necessary.
E.g. evaluate the following expression:
(1 + 2) / 3

and the computations column will show:
1 + 2 / 3 = 1
1 + 2     = 3

Compare to evaluating the expression:
1 + (2 / 3)

which will show:
1 + 2 / 3 = 1.66667
2 / 3     = 0.66667

Here's a screenshot of the first example. There are no parentheses shown even though they are necessary to understand the expression.

How this feature will help you/your organisation
This confuses engineers trying to debug their expressions. Since the macro-style expansion of variables is already confusing (see #635), this compounds their difficulty in understanding whether their expression is being handled as they intended.
Possible solution or implementation details
Always show parentheses around binary expressions. (I'll submit a PR.)

Apparently it's even worse - clicking on any of the expressions shown in the "computations" column opens up the expression editor with that exact text entered. Since the text is not equivalent to the original query, it has led to developers getting extremely confused, trying to debug the wrong expression.


Transparent background

Is it possible to use transparent background ?
Tried:
jsbarcode-background='transparent'
jsbarcode-background="rgba(255, 255, 255, 0.1)"
without success

https://github.com/lindell/JsBarcode/issues/180

Oh no, It works for everything but not my . I guess it is related to image format.


typo: propeties -> properties

@mcleanbyron  The PR passed the acceptance checklist. Please evaluate further and approve/complete the PR if appropriate. Thanks!


object(NaN, {foo: 42})(0.5) throws TypeError

The starting value should be treated as an empty object if it is not an object. So, instead of:
> d3_interpolate.value(NaN, {foo: 42})(0.5)
TypeError: Cannot use 'in' operator to search for 'foo' in NaN
    at object (/Users/mbostock/Development/d3-interpolate/build/d3-interpolate.js:44:18)

The input NaN should be treated as {}:
> d3_interpolate.value({}, {foo: 42})(0.5)
{foo: 42}

Related mbostock/d3#2688.

https://github.com/d3/d3-interpolate/pull/13 solves this problem.

Fixed by #13.


data race crash

In Go 1.8, the runtime has improved always-on data race detection for maps (see https://beta.golang.org/doc/go1.8#mapiter).
It caught this bug, which crashes the whole program instead of letting memory be silently corrupted:
root@raspberrypi:/home/pi# ./zwave-example -port=/dev/ttyUSB0
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /nodes                    --> main.nodes.func1 (3 handlers)
[GIN-debug] GET    /nodes/:id/:action        --> main.control.func1 (3 handlers)
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080
INFO[0000] Sending: 01030002fe
INFO[0000] Recived: 06
INFO[0000] Recived:<PHONE_NUMBER>001defffffffffff0700000000000000000000000000000000000000000000030100
WARN[0000] Started identification on node 15
WARN[0000] Started identification on node 6
Event: events.NodeDiscoverd{Address:4, FuncGetNodeProtocolInfo:functions.FuncGetNodeProtocolInfo{Listening:false, Routing:false, Beaming:false, Version:0x0, Flirs:false, Security:false, MaxBaud:0, Basic:0x0, Generic:0x0, Specific:0x0, data:[]uint8(nil)}}
fatal error: concurrent map read and map write

goroutine 1 [running]:
runtime.throw(0x508ac3, 0x21)
        /home/bradfitz/go/src/runtime/panic.go:596 +0x70 fp=0x10a31edc sp=0x10a31ed0
runtime.mapaccess1_fast32(0x4a2dd8, 0x10aeda20, 0x4, 0x0)
        /home/bradfitz/go/src/runtime/hashmap_fast.go:21 +0x19c fp=0x10a31eec sp=0x10a31edc
github.com/stampzilla/gozwave/nodes.List.Get(0x10aeda20, 0x10a17130, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0)
        /home/bradfitz/src/github.com/stampzilla/gozwave/nodes/list.go:50 +0x9c fp=0x10a31f08 sp=0x10a31eec
main.main()
        /home/bradfitz/src/github.com/stampzilla/gozwave/zwave-example/example.go:38 +0x3b4 fp=0x10a31fbc sp=0x10a31f08
runtime.main()
        /home/bradfitz/go/src/runtime/proc.go:185 +0x1e4 fp=0x10a31fe4 sp=0x10a31fbc
runtime.goexit()
        /home/bradfitz/go/src/runtime/asm_arm.s:1017 +0x4 fp=0x10a31fe4 sp=0x10a31fe4

I added some Lock/Unlock calls and I think I managed to fetch most of the race conditions.
But I don't like that solution :/ I think we return pointers to often. Maybe there are an other better pattern to use?

You should only lock at the outer most level where you are modifying shared maps. Seems like you added alot of other locks which are not needed?

Its possible that I added to many. The problem is that there are many gorutines that uses the same map. Most of then are created by the Identify() method in nodes/nodes.go
If you checkout the d021d0e538a32e34d92d893fe58ac310d67e7983 commit an run the example with go run -race *.go you will see a lot of race conditions


^telemetry[-.]  doesn't block all telemetry sites

The option  ^telemetry[-.]  doesn't block sites like:
reports.wes.df.telemetry.microsoft.com
services.wes.df.telemetry.microsoft.com
sqm.df.telemetry.microsoft.com
sqm.telemetry.microsoft.com
sqm.telemetry.microsoft.com.nsatc.net
telecommand.telemetry.microsoft.com
telecommand.telemetry.microsoft.com.nsatc.net
watson.telemetry.microsoft.com
watson.telemetry.microsoft.com.nsatc.net
etc.
Beter is to use
(^|.)telemetry[-.]
which also covers the examples above.

Made a change to reflect this in https://github.com/mmotti/pihole-regex/commit/3b38c283493cad8d99449f8dd2f46c3050661e7e


Broken Quick-fixes : NUnit assertion can be replaced with FluentAssertions equivalents

Hello there,
If I write an assertion with nUnit I get a gentle message that tells me a migration to fluentAssertions is possible.

However, I don't get any quick fix. I tried several cases and I cannot get any quick fix. I'm pretty sure I used it in the past and was working very well.
Plugin version : 2022.1.0-eap03
Rider version   : 2022.1.2

I have the same issue - installed the plugin to convert tests, but can't get the quick fix.

See #22. The quick-fix is not broken, it just does not exist for this particular assertion type.

Hi guys. I can offer you as a temporary solution the Meziantou.FluentAssertions Analyzers  package, I think later I will return to the project and continue develop migrations


File missing lesion_dict.json

Dear,
The file "lesion_dict.json" is missing from the repo. Could I obtain it in another way?

Hi,
Thanks for your interest. Could you give me your email address, so I can share a google drive link with you?
And I will tell you what is the changes in the new version
By the way, if anyone has a problem downloading data from the Physionet. please email me and I will share the data directly once you show me your approval license.
Regards,
Mingjie

Hi, yes my email:
@.***
And is the code updated? I had issues running it, is it the right version?
Best,
Kristina

From: Mingjie @.>
Sent: Friday, April 1, 2022 2:13 PM
To: mlii0117/FFA-IR @.>
Cc: kixcodes @.>; Author @.>
Subject: Re: [mlii0117/FFA-IR] File missing lesion_dict.json (Issue #2)
Hi,
Thanks for your interest. Could you give me your email address, so I can share a google drive link with you?
And I will tell you what is the changes in the new version
By the way, if anyone has a problem downloading data from the Physionet. please email me and I will share the data directly once you show me your approval license.
Regards,
Mingjie
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmlii0117%2FFFA-IR%2Fissues%2F2%23issuecomment-1085823389&data=04|01||452b0cc8421e4d4c55ab08da13d90481|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637844120047058683|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=w5l1rcFBlmQVEmJhRkTKuxONr0wO824SnPl9ug57l3o%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAK3AXR4C4XCAZITZZ7QLKH3VC3R6FANCNFSM5SIN3MOA&data=04|01||452b0cc8421e4d4c55ab08da13d90481|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637844120047058683|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=6VCocpHFn7TQNUskJjo0qm0RfmfdVEGIc%2BJr4XB0NLo%3D&reserved=0.
You are receiving this because you authored the thread.Message ID: @.***>

Hi @kixcodes,
Your email address is anonymous. You can send me an email.
By the way, could you show me your error?

Hey, my Email is<EMAIL_ADDRESS>please send me the link to dataset. Thanks.

Can you upload this file to google drive and share link here.

Dear, my Email is<EMAIL_ADDRESS>, please send me the link to dataset. Thanks.

hello,my email is fanjunyan218@mail.nut.edu.cn,please send me the lesion_dict.json,Thanks

Hello, my Email is<EMAIL_ADDRESS>, please send me the lesion_dict.json. Thanks!

Hello, my Email is<EMAIL_ADDRESS>, please send me the lesion_dict.json. Thanks!

hello, my email is<EMAIL_ADDRESS> please send me the lesion_dict.json file, thanks.

Hey, my Email is<EMAIL_ADDRESS>please send me the link to dataset. Thanks.


⚠ Bofrost.fr has degraded performance

In cee9fd7, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1732 ms

Resolved: Bofrost.fr performance has improved in cde3b20 after 10 minutes.


NextJs RSC data disapears when using million

What version of million are you using?
2.5.13
Are you using an SSR adapter? If so, which one?
None
What package manager are you using?
PNPM
What operating system are you using?
Win
What browser are you using?
Chrome
Describe the Bug
With NextJS and an array of components, the data showed as: $: 'data'
data was the array with stuff in it, now it turns into a string.
nextjs throws and the data is not in my RSC client component.
Uppon removing million from the next.config.mjs, everything worked (yes i tried restarting the server before that)
What's the expected result?
to give me the data in the client component.
Link to Minimal Reproducible Example
no link, local.
Participation

[ ] I am willing to submit a pull request for this issue.

 Ideally in a stackblitz or GitHub repo so we can triage and fix the issue

Any updates @m10rten?

Any updates @m10rten?

Went on using without million, maybe in the near future I will retry it.

I think we shall close this issue as it doesn't provide the minimal reproduction.

@tobySolutions  Please close this issue until there is a minimal reproduction available

Closing this for now. Thanks @rishi-raj-jain, @Drex72, @SukkaW


Hardfails should be softened and instead set cv values properly

OpenARC should never hardfail, it should only set the cv= value appropriately and move on.
Notes:

OpenARC aborts in some instances where a message fails validation.
Instead, ARC should set the cv to fail or invalid as appropriate.
Some of these aborts appear to happen well before chain validation even begins

Acceptance Criteria:

OpenARC should never abort early due to ARC-specific issues, failures therein should results in cv=fail or cv=invalid

Out of Scope:

Any other reasons for openarc aborting early that aren't directly related to setting a cv value more appropriately

It seems odd to go through all kinds of crypto work merely to affix a "cv=invalid" for a malformed seal.  Maybe we should just attach a regular AR field for this case?
Poked the DMARC list for consensus.


Name History

It's named Norris after the dog at a local pub in Nottingham, the boat inn in Lenton :)

Mystery solved 😄
Thanks Joe!


Item identifier vs fileIdentifier

Hi there,
This is more of a question than an issue but we are experiencing some troubles regarding the internal identifier used by Geoportal when harvesting an existing CSW in old Geonetwork to deploy a new Geoportal. Everything seems to work flawlessly but the identifier set by Geoportal is alike to a Portal for ArcGIS element id and does not match with the harvested element fileIdentifier. From what we can see from other CSW services the identifier and fileIdentifier tend to match to ease the GetRecordById request.
In this case we must perform a GetRecords request prior to a GetRecordById. ¿Is there a way to force Geoportal use the fileIdentifier as the identifier in the harvesting/uploading/creating process?
Thanks,

hi. yes, there is a way to change what field in the metadata Geoportal Server uses for the identifier. I suggest the topic of Evaluators on the wiki as a start: https://github.com/Esri/geoportal-server-catalog/wiki/Evaluators. Evaluators pick elements from the configured metadata types and store them in common fields in the elastic index. One of those elements is the identifier.
Key is that this identifier is unique and persistent. This is a bit of a challenge with ISO metadata with the fileIdentifier is optional and oftentimes not used. While an identifier may be some URI/URL, we have seen cases of recurring values, meaning the fileIdentifier is also not unique.
if this situation does not apply to your case, you could change the evaluator for your metadata and pull the fileIdentifier to use as the main identifier for a record

ah, wait, that _id cannot be modified. That is an id assigned by elasticsearch. What you can change is all in the _source element. There you will find the fileid field that for ISO metadata is based on the file identifier. See this example:
https://gpt.geocloud.com/geoportal2/rest/metadata/item/d1b6fed3e06d4960af263970ad7b0bd6?pretty=true

Hi again,
Finally we manage to set the fileIdentifier as internal _id but just within the geoportal environment modifying MetadataEditor.js and UploadMetadata.js which control the Create Metadata and Upload Metadata options respectively. Everything seems to work properly, letting us delete individual items, searching for them, etc.
Now, could you please tell us where should be looking at to apply similar approach on the Harvester side? As we can see from using DevTools it requests process, triggers and execute links through the rest but cannot get further before looking at the source code.
Thanks

the allowFileId use would indeed achieve your goal. Sorry, I totally missed this setting described in: https://github.com/Esri/geoportal-server-catalog/wiki/Elasticsearch-configuration
"If set to "true", you can use the metadata file id as Elasticsearch id, the id will not be used if the id contains forward slash (e.g. in urls)."

Already made the change on the source code and it works flawlessly. Thank you very much.


ENH: add mongo configs for SRX/SMI

We should change these to be env vars that get set/unset on activate/deactivate, but this is fine for now

We use the files so that jupyter hub (which does not strictly activate it's env) can use these.
I suspect that the best solution is, as @cowanml has suggested, a service that you query with BL + other service, and it returns a valid configuration dictionary.  I also strongly suspect that this has a name and there are a bucket of existing tools that just do this.

Checkout conftrak in LIX tools. Hugo and I already discussed this and writing the first iteration this week


Add git tag for version 0.6.2

Just a small suggestion: Consider tagging the commit that got released to pypi as 0.6.2 with that version number. I just spent some time tracking down the bug reported in https://github.com/justquick/django-activity-stream/pull/266, not realizing that the fix has already been released.
(I know, I shouldn't rely on Github tags for this, but tags are a convenient way to compare different release versions of a code base)

crap yea, i just forgot to make the release in github


Handle arbitrary RDF in SBOL files

It is legal to have arbitrary RDF triples in SBOL files. SBOL libraries should successfully round-trip these triples.
pySBOL3 needs to have a way of maintaining arbitrary RDF triples outside of the object tree so that they can be written to file. One approach is to gather the set of identities in the object tree. Then capture any triples whose subject is not in that set. These captured triples can be put in a graph and tucked away to be used again when writing an SBOL file.

It appears that all SBOL objects must have exactly 1 rdf type (http://www.w3.org/1999/02/22-rdf-syntax-ns#type) in the SBOL3 namespace (http://sbols.org/v3#). We should be able to collect all URIs that have a single rdf type in the SBOL namespace, and squirrel away any triples whose URI falls outside that set.
The rationale for expecting exactly 1 rdf type in the sbol namespace is:

Core SBOL classes have an rdf type in the SBOL3 namespace
Extension classes must be "assigned one of the SBOL types Identified or TopLevel" (Section 6.11 Annotation and Extension of SBOL)


VMClone: Emit an event in case restore creation fails

What this PR does / why we need it:
When a user creates a VMClone and the target VM already exists,
the clone controller tries to create the VirtualMachineRestore, but is rejected by the restore validating webhook due to the fact that the target VM already exist.
The user who created the clone has no indication of what is going wrong.
There is information available about the problem in the logs of the clone controller, but we assume that it is not accessible to the user creating the VMClone.
Emit an event in case there was a failure to create the VirtualMachineRestore so it will be reflected on the VMClone object:
kubectl describe vmclone <name>

or
kubectl get events

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Based on PR #10903 please skip the first commit.
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[X] PR: The PR description is expressive enough and will help future contributors
[X] Code: Write code that humans can understand and Keep it simple
[X] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[X] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note:

VMClone: Emit an event in case restore creation fails

/uncc @lyarwood @stu-gott

@orelmisan Hi, do you think expectSnapshotCreateAlreadyExists  in clone_test.go have some problem?
	expectSnapshotCreateAlreadyExists := func(sourceVMName string, vmClone *clonev1alpha1.VirtualMachineClone, snapshot *snapshotv1alpha1.VirtualMachineSnapshot) {
		client.Fake.PrependReactor("create", snapshotResource, func(action testing.Action) (handled bool, ret runtime.Object, err error) {
			create, ok := action.(testing.CreateAction)
			Expect(ok).To(BeTrue())
			snapshotcreated := create.GetObject().(*snapshotv1alpha1.VirtualMachineSnapshot)
			Expect(snapshotcreated.Spec.Source.Kind).To(Equal("VirtualMachine"))
			Expect(snapshotcreated.Spec.Source.Name).To(Equal(sourceVMName))
			Expect(snapshotcreated.OwnerReferences).To(HaveLen(1))
			validateOwnerReference(snapshotcreated.OwnerReferences[0], vmClone)
			Expect(snapshotcreated.Name).To(Equal(snapshot.Name))
			return true, create.GetObject(), errors.NewAlreadyExists(schema.GroupResource{}, snapshot.Name)
		})
	}

should return
   return true, nil, errors.NewAlreadyExists(schema.GroupResource{}, snapshot.Name)

Same for expectRestoreCreateAlreadyExists

@orelmisan Hi, do you think expectSnapshotCreateAlreadyExists  in clone_test.go have some problem?
	expectSnapshotCreateAlreadyExists := func(sourceVMName string, vmClone *clonev1alpha1.VirtualMachineClone, snapshot *snapshotv1alpha1.VirtualMachineSnapshot) {
		client.Fake.PrependReactor("create", snapshotResource, func(action testing.Action) (handled bool, ret runtime.Object, err error) {
			create, ok := action.(testing.CreateAction)
			Expect(ok).To(BeTrue())
			snapshotcreated := create.GetObject().(*snapshotv1alpha1.VirtualMachineSnapshot)
			Expect(snapshotcreated.Spec.Source.Kind).To(Equal("VirtualMachine"))
			Expect(snapshotcreated.Spec.Source.Name).To(Equal(sourceVMName))
			Expect(snapshotcreated.OwnerReferences).To(HaveLen(1))
			validateOwnerReference(snapshotcreated.OwnerReferences[0], vmClone)
			Expect(snapshotcreated.Name).To(Equal(snapshot.Name))
			return true, create.GetObject(), errors.NewAlreadyExists(schema.GroupResource{}, snapshot.Name)
		})
	}

should return
   return true, nil, errors.NewAlreadyExists(schema.GroupResource{}, snapshot.Name)

Same for expectRestoreCreateAlreadyExists

@Longchuanzheng IMO reactor functions that are returning an error should mimic the behavior of the real client implementation and return nil on the returned value when the returned error is not nil.

@orelmisan So can you fix it in this pr or should I open another pr to fix it？

@Longchuanzheng IMO reactor functions that are returning an error should mimic the behavior of the real client implementation and return nil on the returned value when the returned error is not nil.

@orelmisan So can you fix it in this pr or should I open another pr to fix it？

@Longchuanzheng IMO the proposed change is not in the scope of this PR.
I can publish an additional PR for it, but if you want to do it - please go ahead.

@orelmisan  I also found the same problem in export_test https://github.com/kubevirt/kubevirt/pull/10776. I can change the pr name and description to add this fix.

/cc @Barakmor1

/retest-required

/retest-required

/retest-required


Can't select scheme from favorites panel

Pressing [ENTER] in the favorites panel has stopped working lately.

Hi @alextegelid when did it stop working for you? Does the favourites panel stay open after hitting enter or does it close and nothing happen? Is there a message displayed in the console after selecting a favourite?

I noticed it about a month ago. It's hard to be more specific since I don't switch themes very often.
The panel closes and the only line that appears in the console is this:
reloading Packages/User/SchemrFavorites.sublime-settings
I've recorded the bug here: http://cl.ly/0P0E1L0x1e3a
(Note that I use this in my preferences: "schemr_preview_selection": false)
When the panel disappears in the video, that's me hitting enter

@alextegelid I've been unable to reproduce this issue on OS X and Windows. Which version of ST are you using?

That's weird. I'm on the stable channel, build 3083.
Is there any files I need to remove other than removing Schemr via Package Control to try a fresh install?

@alextegelid I've tested using build 3083 and found the issue. Due to the proxy I'm on at the moment I'll push the fix in a couple hours when I have a chance to switch network.

Great! Will the update be available via package control or do I need to clone the repo?

It will hit Package Control in the next couple hours. Let me know if you have any problems

Thanks, it works like a charm. Good job!


Support for hosting in a subdirectory of a site

Is your feature request related to a problem? Please describe.
I'm already hosting a personal front page on apache running on a local server. I want to set up quartz like it's a part of that website. But it seems that those "external resources" are not written for this case...
Describe the solution you'd like
Describe alternatives you've considered
Add the user-given baseUrl to what's in front of those resource paths, like demonstrated https://github.com/StevenRCE0/quartz/commit/9c6a0a8ac1da59fb64a3d84f170fc98467d5d59d (it's a rough workaround to show what I'm intended to say)

This is already supported, Quartz doesn't presume anything about where it's hosted. It already works on GitHub pages at <username>.github.io/quartz for example so you might need to change your personal hosting setup. Can you provide more information about your hosting setup?

Yup, I'm actually running both services in a single virtual host and quartz is behind reverse proxy hence forwarding all routes is not viable. I don't know if this is a really weird demand :-)

Generally, npx quartz build --serve isn't meant for production serving so you should use npx quartz build to get the static files and then use something like NGINX to serve out of the public folder

The thing you need to do is to resolve the url and direct it to quartz's static files. A reverse proxy could be enough if it provides this function. I use Django to match urls such as blog/quartz/..., and then load static files from disk.

@Odaimoko @jackyzha0 My problem is solved. Thanks a lot!


[Dialogs] Language difference in behavior for Dialog.onComputeId()

Versions
What package version of the SDK are you using. 4.14.x
Describe the bug
Dialog.OnComputeId() in the .NET SDK uses Object.GetType() to use the Type's Name of the class if OnComputeId() is not overridden. In the JS SDK, an error is thrown if Dialog.onComputeId() is not overridden.
The Java SDK and Python SDK both appear to perform the same behavior as .NET.
Example
The JS implementation of SendHandoffActivity in Composer/AdaptiveDialog bots will thrown a runtime error whenever SendHandoffActivity.onComputeId() is called. To workaround the bug in the SDK, developers must subclass it and register it as a custom component.
When using the .NET SDK, developers just register SendHandOffActivity and no errors are thrown.
Additional context
This issue was found when working with a customer on a MVP.

Triaged with the team. Will not take this port as Adaptive for JS is in preview.


Removed Conditions trait from cluster. Improved label selectors.

Description

Removed conditions.
Sorted methods.
Bumped tokio to 1.10.
Added list_config_maps. Renamed "get" to "list".

Review Checklist

[ ] Code contains useful comments
[x] (Integration-)Test cases added (or not applicable)
[ ] Documentation added (or not applicable)
[ ] Changelog updated (or not applicable)

Just that one comment about notation for dependency updates left to do, after that happy to approve.


removed redundant variable definition

elapsedTime was defined gloabally and in the scope of updateActionBar, which causes errors.

Good Catch!


Is this GitHub project still being maintained?

Hey guys, Is this GitHub project still being maintained? I noticed that the data hasn't been updated for a long time. If it's convenient, could you inform me why it's been deprecated? and I now how should upload BTC collections~, thanks!

It's dead. The maintainers should archive it, so that the market can move on and create a better solution.

Hi

nice project

__


Does the password grant type implementation in IdentityServer4 require client secret?

When using the password grant type for a console or service app, it works fine when I POST username/password and client_id/secret. However, we are questioning whether it's necessary to include the client's secret. So, I tested it by not send the secret. I get error code 400 and message 'invalid_client'. I saw a column on the client registration table called: RequireClientSecret. When setting to 0, I get 'invalid_grant'. I don't know if the secret is mandatory from the OAuth's standard. I did some search and did not find the answer. But I saw a comment on the Azure AD's implementation. It says: client_secret is 'Sometimes required'. See this link:
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc#:~:text=You%20should%20only%20use%20this,flows%20can't%20be%20used.&text=The%20Microsoft%20identity%20platform%20only,AD%20tenants%2C%20not%20personal%20accounts.&text=Personal%20accounts%20that%20are%20invited,t%20sign%20in%20through%20ROPC.
So, I am wondering if you can provide an answer or explanation?
Thanks!

If you set RequireClientSecret to false, then then client secret is not required.

@leastprivilege, I tried that and got 'invalid_grant'. Seems like 'RequireClientSecret = false' is not compatible with password grant.

I don't think so. As always - check the logs to find the real reason of an error.

@leastprivilege, after a more careful test, I confirm you are right. By setting RequireClientSecret to false, the client secret is not needed for password grant. Thanks!


update sector & decision ids after dataset import

WHen a dataset is (re)imported we need to rematch all sectors and decisions as ids might not be correct anymore

this also solves the missing ids in the init script

@yroskov @thomasstjerne @gdower we need to discuss the exact procedure.
For sectors I think it is rather safe to rematch them all based on the rank/name/authorship.
For decisions though I am in doubt how to best do this.
Decisions are used to remove duplicates, therefore the rank/name/authorship is often not enough to clearly identify which record is meant. It might happen that sources have cleaned up data and there are no more duplicates and we now block a good record. It is also random which of the duplicate records gets removed if we have no id. So preferrably we always match by ID, but very often these will change.
How about:

we keep a settings flag on a dataset that tells us if ids are stable
default is yes, but the importer will manage this by checking 100 random records and verify the ids have kept the same
for datasets with stable ids no sectors and decisions are updated
for unstable datasets we will try to match by name/rank/authorship and optionally also by status & parentName

if the match is unique we'll use it, if not its broken and will be reported
a duplicate decision can match to any of the duplicates randomly
we keep a resolvesDuplicate flag on a decision to know this decision only applies to duplicates. If a source does not have a duplicate anymore the decision becomes broken (or should we even delete it automatically?). Is this needed if we also have status and parent stored?

See also #283 which blocks decisions on synonyms

Markus, protocols listed under "How about" look very much reasonable for me.

matching is taken care of by https://github.com/Sp2000/colplus-backend/issues/568


onProgress run wrong Android

env: Vinsmart Aris - android11
while I watching a video suddenly the video freezes and only sound is heard. When I check value of the currentTime is back to 0 and keep runing

any sample ? is this 100% of time ?

value of the currentTime

Hi freeboud
I have a video that is 60s long, but I watched it for the first time, no problem, but when I watch the next time when I am watching the video, there is a phenomenon that the video image is frozen but the sound is still playing. Which I tried to check and found out that currentTime value running 23rd second suddenly goes back to 2nd even though I don't use seekTo function
Thank you

Can you share this video ? And or check if you reproduce the issue on sample for this git repo ? (Folder sample/basic)

no feedback let's close

Same here

@yoohaso any additional info ?


template_synology_diskstation wrong volume size calculated

The disksize is calculated with a fixed multiplier of 4096, however, the value can be also different as it is with my unit.
Checking the value for  hrStorageAllocationUnits with mibbrowser shows 16384 instead of 4096.
Another volume on the unit  has 4096 for hrStorageAllocationUnits.
My suggestion would be to calculate with the value of hrStorageAllocationUnits.
Below a filtered view of the snmp information.
"hrStorageIndex","hrStorageType","hrStorageDescr","hrStorageAllocationUnits","hrStorageSize","hrStorageUsed","hrStorageAllocationFailures","Index Value"
"55",".<IP_ADDRESS>.<IP_ADDRESS>.1.4","/volume1","16384","1170658963","864524997",""," 55"
"56",".<IP_ADDRESS>.<IP_ADDRESS>.1.4","/volumeUSB2/usbshare","4096","360501858","314950992",""," 56"
"61",".<IP_ADDRESS>.<IP_ADDRESS>.1.4","/volumeUSB1/usbshare","4096","720787053","382743615",""," 61"
"63",".<IP_ADDRESS>.<IP_ADDRESS>.1.4","/volume2","4096","54861497","1497091",""," 63"

return (parseInt(value) * parseInt("{#IFUNIT}"));

I am not really sure how this would fix my challenge, when I change it in the template it would be applied to all volumes monitored (I guess)
But one unit has 2 different allocation unit values and then volume2 would be displayed incorrect.

Обратите внимание на множитель {#IFUNIT}  в скрипте, это макрос из snmp под разные разделы он свой. Множитель 4096 удалите у себя

Sorry for taking ages to respond, this java script indeed solves the issue, all values are shown correctly


Date Cell Coloring

How do I color a specific date???

there is no built in way to do this, if you want to do this you will have to make changes to the CalendarAdapter


Can I display the floating buttons in horizontal?

When the iPhone is in landscape, there isn't enough space to display the floating buttons. In this case I would like to show the buttons in horizontal. Is there a way to do it?

Sorry, not supported. 😢
If you request PR, I will accept it.

https://github.com/kciter/Floaty/pull/269


Strapi V4 with Nuxt Bridge throws «$fetch is not defined»

Version
    "@nuxtjs/strapi": "^1.3.1",
    "nuxt-edge": "latest",
    "@nuxt/bridge": "npm:@nuxt/bridge-edge",
    "node-fetch": "^3.2.3",
    "ohmyfetch": "^0.4.15",

Reproduction
Upgraded my Nuxt2 App to nuxt Bridge to be able to use Strapi v4.
Tried to yarn add node-fetch ohmfetch. No success. Do I need to register the $fetch somehow in Nuxt?
Steps to reproduce
export default {
// ...
  setup() {
    const { login } = useStrapiAuth()

    login({
      identifier<EMAIL_ADDRESS>      password: '12345678',
    })

    return { login }
  },
// ...

What is Expected?
Try to login.
What is actually happening?
Throwing an error: $fetch is not defined
Happens also with create, find etc.

Becuase of this bug in Nuxt Bridge I needed to disable nitro:
Build fails with SSR turned off
As I read somewhere nitro implements $fetch. Therefore it makes sense that $fetch is not found. Any Idea how I can implement $fetch manually?  I tried to install ohmyfetch and node-fetch – no luck. Also tried to inject $fetch as a plugin – also no luck. Anyone an idea how to fix this?


Graphql API connection between models

Hi everyone.
Now, I'm trying to get such json object from Graphql API.
{   user: {     id: ID,     name: String,     friends: {       user: {         id: ID,         name: String       },       user: {         id: ID,         name: String       },       user: {         id: ID,         name: String       },     }   } }
For this, how do I need to draw my schema?
I'll appreciate it if anyone could give me a solution for this.
Thanks for your attention.

Hi @dreamhigh915, check out the documentation for GraphQL: https://docs.amplify.aws/cli/graphql-transformer/overview
If you're still stuck, questions like these are better suited for our community discord server.

OK


NIFI-7646, NIFI-8222: Reduced lock contention when updating Provenance Repository by buffering up to 1 MB of serialized records in memory; keep InputStream from content repo open when possible for reading across multiple FlowFiles in a session

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Enables X functionality; fixes bug NIFI-YYYY.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically main)?

[ ] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

I created a few different flows to measure the performance of NiFi on the main branch vs. this branch to verify that these changes resulted in significant performance improvements. Here are the results:
GenerateFlowFile (0 bytes) -> UpdateAttribute
Branch    | FlowFiles / 5 min | CPU Utilization
-----------------------------------------------
main      | 14.4 million      | 600-650%
this branch | 21 million        | 600-650%

46% higher throughput. 0% more CPU used.

GenerateFlowFile (37 bytes JSON) -> ConvertRecord (JSON In, JSON Out) -> UpdateAttribute
Branch    | FlowFiles / 5 min | CPU Utilization
-----------------------------------------------
main      | 7.6 million       | 750-800%
this branch | 12.4 million      | 900-950%

63% higher throughput. Took a good bit more CPU but made that CPU available for use by the processor.

GenerateFlowFile (1024 bytes) -> MergeContent (binary concat, 1024 FlowFiles/bin) -> UpdateAttribute
Branch    | FlowFiles / 5 min | CPU Utilization
-----------------------------------------------
main      | 7.3 million       | 600-650%
this branch | 16.2 million      | 650-700%
122% higher throughput. Maybe 1/2 core more CPU used.

Have a test flow running.  Also showing similar numbers.  Seeing around 73K events/sec on a flow which is event/metadata intensive so is very telling about any gains.  (GenerateFF/UpdateAttr)

+1 LGTM, ran full build with tests and a few flows using MergeContent and others with lots of small files. I removed the TODO comment and the unused Jackson dependency. Thanks for the improvement! Merging to main


support builtin read command

need variable type checking
restrict command argument(parameter expansion, string literal)
result variables are the same scope of read command
ydsh>  read A B C

after read command invocation, put result values to special map, instead of defining variable.
so not need result variable type checking

if not specified variable name, store read line to 'REPLY'.
if specified variable name, store splitted line to map variable 'reply'.

can specify field separator


Do you have further plans for code release?

We plan to get the code released by the end of June 2021, right after the CVPR conference.


missing requirements.txt

Python projects should have a requirements.txt for all the dependencies and to manage easier your venv.
https://learnpython.com/blog/python-requirements-file/

Added


Django 2.0 support

Is Django 2.0 / 2.1 supported?

👍

I could be wrong but for me it seems like Django 2.0's extend tag works like overextend out of the box. So you probably don't need overextends at all!