bug: mDNS Daemon Panics When Parsing DNS Records

the mDNS daemon thread panics as it's parsing DNS records.
Stacktrace
thread 'mDNS_daemon' panicked at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1795:34:
index out of bounds: the len is 265 but the index is 265
thread 'stack backtrace:
mDNS_daemon' panicked at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1795:34:
index out of bounds: the len is 265 but the index is 265
   0: rust_begin_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:180:5
   3: <usize as core::slice::index::SliceIndex<[T]>>::index
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/slice/index.rs:261:10
   4: core::slice::index::<impl core::ops::index::Index<I> for [T]>::index
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/slice/index.rs:18:9
   5: <alloc::vec::Vec<T,A> as core::ops::index::Index<I>>::index
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/alloc/src/vec/mod.rs:2728:9
   6: mdns_sd::dns_parser::DnsIncoming::read_type_bitmap
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1795:34
   7: mdns_sd::dns_parser::DnsIncoming::read_rr_records
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1742:25
   8: mdns_sd::dns_parser::DnsIncoming::read_additional
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1616:27
   9: mdns_sd::dns_parser::DnsIncoming::new
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1532:9
  10: mdns_sd::service_daemon::Zeroconf::handle_read
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:1594:15
  11: mdns_sd::service_daemon::ServiceDaemon::handle_poller_events
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:463:19
  12: mdns_sd::service_daemon::ServiceDaemon::run
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:524:26
  13: mdns_sd::service_daemon::ServiceDaemon::daemon_thread
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:423:28
  14: mdns_sd::service_daemon::ServiceDaemon::new::{{closure}}
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:189:28
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: rust_begin_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_bounds_check
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:180:5
   3: <usize as core::slice::index::SliceIndex<[T]>>::index
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/slice/index.rs:261:10
   4: core::slice::index::<impl core::ops::index::Index<I> for [T]>::index
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/slice/index.rs:18:9
   5: <alloc::vec::Vec<T,A> as core::ops::index::Index<I>>::index
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/alloc/src/vec/mod.rs:2728:9
   6: mdns_sd::dns_parser::DnsIncoming::read_type_bitmap
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1795:34
   7: mdns_sd::dns_parser::DnsIncoming::read_rr_records
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1742:25
   8: mdns_sd::dns_parser::DnsIncoming::read_additional
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1616:27
   9: mdns_sd::dns_parser::DnsIncoming::new
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/dns_parser.rs:1532:9
  10: mdns_sd::service_daemon::Zeroconf::handle_read
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:1594:15
  11: mdns_sd::service_daemon::ServiceDaemon::handle_poller_events
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:463:19
  12: mdns_sd::service_daemon::ServiceDaemon::run
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:524:26
  13: mdns_sd::service_daemon::ServiceDaemon::daemon_thread
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:423:28
  14: mdns_sd::service_daemon::ServiceDaemon::new::{{closure}}
             at /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/mdns-sd-0.12.0/src/service_daemon.rs:189:28
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Debug Log
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsNSec { record: DnsRecord { entry: DnsEntry { name: "hothoney-15817.local.", ty: NSEC, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>509, expires:<PHONE_NUMBER>509, refresh:<PHONE_NUMBER>509, new_name: None }, next_domain: "hothoney-15817.local.", type_bitmap: [64, 0, 0, 8] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsNSec { record: DnsRecord { entry: DnsEntry { name: "hothoney-15817.local.", ty: NSEC, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>510, expires:<PHONE_NUMBER>510, refresh:<PHONE_NUMBER>510, new_name: None }, next_domain: "hothoney-15817.local.", type_bitmap: [64, 0, 0, 8] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsNSec { record: DnsRecord { entry: DnsEntry { name: "hothoney (177568)._companion-link._tcp.local.", ty: NSEC, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>510, expires:<PHONE_NUMBER>510, refresh:<PHONE_NUMBER>510, new_name: None }, next_domain: "hothoney (177568)._companion-link._tcp.local.", type_bitmap: [0, 0, 128, 0, 64] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsNSec { record: DnsRecord { entry: DnsEntry { name: "hothoney (177568)._companion-link._tcp.local.", ty: NSEC, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>510, expires:<PHONE_NUMBER>510, refresh:<PHONE_NUMBER>510, new_name: None }, next_domain: "hothoney (177568)._companion-link._tcp.local.", type_bitmap: [0, 0, 128, 0, 64] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::service_daemon] handle_response: 4 answers 0 authorities 2 additionals
[2024-12-12T05:42:35Z DEBUG mdns_sd::service_daemon] handle_response: 4 answers 0 authorities 2 additionals
[2024-12-12T05:42:35Z DEBUG mdns_sd::service_daemon] received 265 bytes at IP: <IP_ADDRESS>
[2024-12-12T05:42:35Z DEBUG mdns_sd::service_daemon] received 265 bytes at IP: <IP_ADDRESS>
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_header: id 0, 0 questions 4 answers 0 authorities 2 additionals
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_header: id 0, 0 questions 4 answers 0 authorities 2 additionals
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_questions: 0
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_questions: 0
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: 4
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: 4
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "mozza-23737.local.", ty: AAAA, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>510, expires:<PHONE_NUMBER>510, refresh:<PHONE_NUMBER>510, new_name: None }, address: fe80::1053:5e7c:4803:2fa }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "mozza-23737.local.", ty: AAAA, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>510, expires:<PHONE_NUMBER>510, refresh:<PHONE_NUMBER>510, new_name: None }, address: fe80::1053:5e7c:4803:2fa }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "mozza-23737.local.", ty: A, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>510, expires:<PHONE_NUMBER>510, refresh:<PHONE_NUMBER>510, new_name: None }, address: <IP_ADDRESS> }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "mozza-23737.local.", ty: A, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, address: <IP_ADDRESS> }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "mozza (88318)._companion-link._tcp.local.", ty: TXT, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, text: [TxtProperty {key: "rpBA", val: Some("3A:D0:E7:FB:FA:51")}, TxtProperty {key: "rpAD", val: Some("f5f484c421f5")}, TxtProperty {key: "rpFl", val: Some("0x20000")}, TxtProperty {key: "rpHN", val: Some("ba391581c830")}, TxtProperty {key: "rpMac", val: Some("0")}, TxtProperty {key: "rpVr", val: Some("580.4")}] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "mozza (88318)._companion-link._tcp.local.", ty: TXT, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, text: [TxtProperty {key: "rpBA", val: Some("3A:D0:E7:FB:FA:51")}, TxtProperty {key: "rpAD", val: Some("f5f484c421f5")}, TxtProperty {key: "rpFl", val: Some("0x20000")}, TxtProperty {key: "rpHN", val: Some("ba391581c830")}, TxtProperty {key: "rpMac", val: Some("0")}, TxtProperty {key: "rpVr", val: Some("580.4")}] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "mozza (88318)._companion-link._tcp.local.", ty: SRV, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, priority: 0, weight: 0, host: "mozza-23737.local.", port: 50432 }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "mozza (88318)._companion-link._tcp.local.", ty: SRV, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, priority: 0, weight: 0, host: "mozza-23737.local.", port: 50432 }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: 0
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: 0
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: 2
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: 2
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsNSec { record: DnsRecord { entry: DnsEntry { name: "mozza-23737.local.", ty: NSEC, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, next_domain: "mozza-23737.local.", type_bitmap: [64, 0, 0, 8] }
[2024-12-12T05:42:35Z DEBUG mdns_sd::dns_parser] read_rr_records: DnsNSec { record: DnsRecord { entry: DnsEntry { name: "mozza-23737.local.", ty: NSEC, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>511, expires:<PHONE_NUMBER>511, refresh:<PHONE_NUMBER>511, new_name: None }, next_domain: "mozza-23737.local.", type_bitmap: [64, 0, 0, 8] }

Thanks for opening this issue!  I've posted a PR #291  to check the data length in this case. I'm wondering if this is indeed a corrupt NSEC record incoming, or is it a valid record but we are not able to process it properly?

I just pulled from your merged PR and I'm testing at the moment. The crash happens 30-40 hours in so we'll see in a day or two.
As if this is a corrupt NSEC record, I'm not entirely sure, sorry :/

So I've run it for a couple of days and there have been no crashes so far. Thanks a lot for the fix :)

thanks for confirming! I will close the issue now.


Add the ability to query the AGDC and export the results to CSV file

Refer #35

Verified as implemented in 0.1.0-b20150427 (aka 0.1.0 2015-04-27 snapshot).
The datacube.api.query now supports list_cells_to_csv and list_tiles_to_csv.
Refer to the API Python Function Reference and the API Overview.


Elevate system

This PR:

renames System to _System
renames ConcreteSystem to System and routes all construction of System through the construction of _System

Codecov Report

Merging #232 into dev will decrease coverage by 1.44%.
The diff coverage is 52.94%.

@@            Coverage Diff             @@
##              dev     #232      +/-   ##
==========================================
- Coverage   56.28%   54.84%   -1.45%
==========================================
  Files          51       51
  Lines        3841     3851      +10
==========================================
- Hits         2162     2112      -50
- Misses       1679     1739      +60

Impacted Files
Coverage Δ

src/PowerSystems.jl
100% <ø> (ø)
:arrow_up:

src/utils/print.jl
27.9% <0%> (-72.1%)
:arrow_down:

src/parsers/forecast_parser.jl
91.93% <100%> (ø)
:arrow_up:

src/base.jl
75.67% <61.53%> (-19.78%)
:arrow_down:

src/utils/utils.jl
33.33% <0%> (-40.36%)
:arrow_down:

src/parsers/dict_to_struct.jl
75.26% <0%> (-1.98%)
:arrow_down:

src/utils/ptdf_calculations.jl
29.68% <0%> (+0.08%)
:arrow_up:

Continue to review full report at Codecov.

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

Looks good to me except for the docstring.

Please do not merge this change just yet even if approved. I want to add the support for the ED and UC formulations before having to perform this update.


Problem with Nettrine\ORM\DI\OrmCacheExtension

When I use Nettrine\ORM\DI\OrmCacheExtension and Nettrine\Extensions\DI\DoctrineExtensionsExtension at the same time, I got this exception:
Gedmo\Exception\InvalidMappingException
Tree listener was not found on your entity manager, it must be hooked into the event manager
When using Nettrine\Extensions only, everything works fine.

I have same issue. Problem is with Metadata in no-debug mode. When I turn off cache for metadata, everything is going well.
Nettrine\Dbal  => DebugEventManager have for event loadClassMetadata registered instances of classes (listeners) but in ContainerAwareEventManager are only names of services (for lazy loading?). And that is a problem for constructor of the AbstractTreeRepository in Gedmo package.
In production mode aren't listeners, only theirs names of services.
Temporary workaround is disabling a metadata cache in configuration.
abstract class AbstractTreeRepository extends EntityRepository implements RepositoryInterface
{
    /**
     * Tree listener on event manager
     *
     * @var TreeListener
     */
    protected $listener = null;

    /**
     * Repository utils
     */
    protected $repoUtils = null;

    /**
     * {@inheritdoc}
     */
    public function __construct(EntityManagerInterface $em, ClassMetadata $class)
    {
        parent::__construct($em, $class);
        $treeListener = null;

        foreach ($em->getEventManager()->getListeners() as $listeners) {
            foreach ($listeners as $listener) {
                //
                // $listener is only name of service
                //
                if ($listener instanceof TreeListener) {
                    $treeListener = $listener;
                    break;
                }
            }
            if ($treeListener) {
                break;
            }
        }

        if (is_null($treeListener)) {
            throw new \Gedmo\Exception\InvalidMappingException('Tree listener was not found on your entity manager, it must be hooked into the event manager');
        }

Debug:

Production:

Thanks for detailed report. It looks like, we need instance all services for getListeners method.

Maybe add configuration in Dbal extension which disable lazy-load of
specific listener service? And then update Extensions package readme.
I think lazy-load of listeners is good practice in general, just add easy
way to disabled it.
Thank you for your time!
JZ
On Sat, 25 May 2019 at 12:08, Milan Felix Šulc<EMAIL_ADDRESS>wrote:

Thanks for detailed report. It looks like, we need instance all services
for getListeners method.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nettrine/extensions/issues/9?email_source=notifications&email_token=AFAE7RY7SQHWLAH6YMUTMNDPXEF2ZA5CNFSM4GQNFA5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWHNYZY#issuecomment-495901799,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFAE7R3Y356J563LE4GDKP3PXEF2ZANCNFSM4GQNFA5A
.


Fix eunit test on OTP18

OTP18 changed the output failed assertion string
from assertEqual_failed to assertEqual

If I get the tests right, this works in old versions because we match on a partial string and assertEqual still matches assertEqual_failed? This does seem a bit brittle (it would match on assertEqual_success) but fine by me.

luckily there's no assertEqual_success but i see your point, the actual string that is being returned is:
**error:{assertEqual_failed,[{module,myapp_mymod3},
{line,8},
{expression,"false"},
{expected,true},
{value,false}]}
ideally we should be able to parse the whole string into an erlang term and match that, much safer that way

Agreed. for the time being this is fine, though.


About Positive Sample Matching？

I read your code, in yolo_head.py line 508
        n_candidate_k = 10
        topk_ious, _ = torch.topk(ious_in_boxes_matrix, n_candidate_k, dim=1)
        dynamic_ks = torch.clamp(topk_ious.sum(1).int(), min=1)
        for gt_idx in range(num_gt):
            _, pos_idx = torch.topk(
                cost[gt_idx], k=dynamic_ks[gt_idx].item(), largest=False
            )
            matching_matrix[gt_idx][pos_idx] = 1.0

In this code, if cost[gt_idx, pos_idx[-1]] > 100000.0, the anchor was assigned as a positive sample.
What I mean is that if cost[gt_idx, pos_idx[-1]] > 100000.0, the anchor must be either not in box or not in center, or both.
Is this try to assign a positive sample for all gt boxes?

@KangGrandesty I think you misunderstand our code.  Any anchor-gt pair whose cost[gt_idx, pos_idx[-1]] > 100000.0, its anchor is a negative sample.

In code line 404:
        cost = (
            pair_wise_cls_loss
            + 3.0 * pair_wise_ious_loss
            + 100000.0 * (~is_in_boxes_and_center)
        )

If cost < 100000.0, the center of anchor must be in box and in center of box.
But, dynamic_ks[i] is the sum of the top-n-iou in all iou between ith gt boxes and predictions.
If dynamic_ks[i] > is_in_boxes_and_center.sum(1)[i], it must exist the positive anchor with cost > 100000.0.
It is not a rigorous inference all(dynamic_ks >= is_in_boxes_and_center.sum(1)) is True.


Security update (TLS communications CP<->DP)

Refactored security to lines of communications.
Added "Encrypted communication" section.
Changed URLs when you use kuma-dp run

@jakubdyszkiewicz please resolve conflicts here.


Testing Approval - Andrew

This issue has been auto-generated to facilitate questions about a paid opportunity that has just been posted on the BCDevExchange.To learn more or apply, visit the opportunity page. The opportunity closes on Saturday, January 26, 2019.

This opportunity has been assigned


History: View changes to application and assessment

User Story
As an analyst,
I want to track changes to an application and its' assessment,
So that I can know when things were changed and by whom
Acceptance Criteria

[ ] Page linked in sidebar
Given that an analyst is on any page of an application
and can see the sidebar
when they click on “History” in the sidebar
then they will be directed to the History page for that application

[ ] Date format: [MMM DD, YYYY] [hh:mm]

[ ] Order: Most recent on top

Status

[ ] Icon: https://fontawesome.com/icons/circle-small?s=solid&f=classic stacked on https://fontawesome.com/icons/circle?s=regular&f=classic
[ ] Statement: {User} changed the status to {status pill} on {date} at {time}
[ ] Reason for change: If none, “None provided”

Edited application

[ ] Icon is same as in sidebar: https://fontawesome.com/icons/clipboard-list?s=solid&f=classic
[ ] Statement: {User} edited the application on {date} at {time}
[ ] Reason for change: If none, “None provided”

RFI

[ ] Icon is same as in sidebar: https://fontawesome.com/icons/envelope?s=solid&f=classic
[ ] Statement: {User} saved {RFI #} on {date} at {time}
[ ] When an applicant uploads files: icon: https://fontawesome.com/icons/paperclip?s=solid&f=classic
[ ] When an applicant uploads files: Statement: The applicant uploaded file(s) in response to {RFI #}

All Assessments

[ ] Icon is same as in sidebar: https://fontawesome.com/icons/check-double?s=solid&f=classic
[ ] Statement: {User} saved {type of assessment} on {date} at {time}

Lead

[ ] Icon: https://fontawesome.com/icons/user?s=solid&f=classic
[ ] Statement: {User} assigned the Lead on {date} at {time}

Package

[ ] Icon: https://fontawesome.com/icons/box-check?s=solid&f=classic or box + check layerd
[ ] Statement: {User} added the application to a Package on {date} at {time}

[ ] Icons are colour: 1A5A96; size: 1em. Icons are in a container that's 1.5em (24px) square

Ultra refinement

research spike into using PG audit vs business logic
will need to backfill for existing history

Split the ticket into:

[ ] #1208 - Database implementation
[ ] #1209 - Backfill data for existing data
[ ] #1210 - Implement solution/ingestion pipeline for new data
[ ] #1211 - Front-end implementation

DB:

[ ] .
Frontend:
[ ] .
Integration/API:
[ ] .
Tests:
[ ] PGtests.
Documentation:
[ ] Update database diagram on Miro.

Wireframe
Wireframe

A good candidate for finding diffs between the two JSON objects: https://www.npmjs.com/package/deep-object-diff

The reason that I've made this a 13: since this is a consolidated timeline (not just of the application data/separated out) then needing to grab all the data and then organize each piece of data (probably on the client side? Probably happening on the server since we're using Next) before then diffing on each relevant type of data (application form data, rfi data, lead, and status) is probably going to be a complex piece of work. May be more accurate as an 8 but this is my estimate.

Looks great and seems to be working great!
Can I request a couple of  modifications please? I don't mind putting these in another ticket for next sprint if you like.

Can we have the history to be ordered with most recent on top
Can we have the history start at 'Received'.  i.e. the oldest entry show in the history is when the application was 'Received'.   I don't think we explicitly said that in the ticket.

@MarsRomer yep no problem, I have submitted an update which should be merged in shortly.


Calendar Sync not working

I am using an U8120 from Huawei and successfully installed SMS Backup+. First the calendar option was non clickable but after restarting SMS Backup+ it finally worked.
I was able to select the specific Google calendar and clicked on backup. After some seconds it was done.
In Gmail it created the "Calls" and "SMS" label successfully but it did not do anything in the Google calendar. I manually checked the calendar on my phone and it successfully added an event. But as soon as I click on the event and edit it, it says "Phone-only (unsynced) calendar.
So how do I change that? I want it to add my call log to the ONLINE calendar, not the local phone calendar.
PS: Of course my calendar is normally working (manually adding events show up almost immediately on the online Google calendar)

you need to sync your local calendar - that's how it works.


Error when calling get_backend_symbol

I am using the following code to use tensorrt to speed up inference but got some errors:
The mxnet model I am loading is retinaface downloaded from Retinaface under "RetinaFace Pretrained Models".
sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch)
trt_sym = sym.get_backend_symbol(‘TensorRT’)
mx.contrib.tensorrt.init_tensorrt_params(trt_sym, arg_params, aux_params)
mx.contrib.tensorrt.set_use_fp16(False)
self.model = trt_sym.simple_bind(ctx=self.ctx, data = (1,3,image_size[0], image_size[1]), grad_req=‘null’, force_rebind=True)
self.model.copy_params_from(arg_params, aux_params)

File “/home/qiuzhewei/RetinaFace/retinaface.py”, line 224, in init
trt_sym = sym.get_backend_symbol(‘TensorRT’)
File “/opt/conda/lib/python3.7/site-packages/mxnet/symbol/symbol.py”, line 2564, in get_backend_symbol
check_call(_LIB.MXGenBackendSubgraph(self.handle, c_str(backend), ctypes.byref(out)))
File “/opt/conda/lib/python3.7/site-packages/mxnet/base.py”, line 253, in check_call
raise MXNetError(py_str(LIB.MXGetLastError()))
mxnet.base.MXNetError: [09:39:00] src/c_api/…/operator/subgraph/subgraph_property.h:367: Check failed: it != prop_ptr_map.end(): SubgraphProperty TensorRT is not found in SubgraphPropertyRegistry
Stack trace:
[bt] (0) /opt/conda/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x4a357b) [0x7f683cbe657b]
[bt] (1) /opt/conda/lib/python3.7/site-packages/mxnet/libmxnet.so(MXGenBackendSubgraph+0x1ab) [0x7f683ed5a5db]
[bt] (2) /opt/conda/lib/python3.7/lib-dynload/…/…/libffi.so.6(ffi_call_unix64+0x4c) [0x7f6876a4aec0]
[bt] (3) /opt/conda/lib/python3.7/lib-dynload/…/…/libffi.so.6(ffi_call+0x22d) [0x7f6876a4a87d]
[bt] (4) /opt/conda/lib/python3.7/lib-dynload/_ctypes.cpython-37m-x86_64-linux-gnu.so(_ctypes_callproc+0x2ce) [0x7f6876ec9f7e]
[bt] (5) /opt/conda/lib/python3.7/lib-dynload/_ctypes.cpython-37m-x86_64-linux-gnu.so(+0x139b4) [0x7f6876eca9b4]
[bt] (6) python(_PyObject_FastCallKeywords+0x49b) [0x55b2e1d13d2b]
[bt] (7) python(_PyEval_EvalFrameDefault+0x537e) [0x55b2e1d6f7ae]
[bt] (8) python(_PyFunction_FastCallKeywords+0xfb) [0x55b2e1d1279b]
The code is basically from /tests/python/tensorrt/test_resnet18.py
I have no idea how to solve it and google doesn't provide any solution.
Any help will be appreciate!

TensorRT integration isn't built by default. To enable this backend, you need to build from source with USE_TENSORRT=1

@Zheweiqiu please let us know if building with TENSORRT solves the issue.
@mxnet-label-bot add [Question, Build, Pending Requester Info]

Hi @ZhennanQin,
When you say "build from source", do you mean set parameter USE_TENSORRT=1 when building the model or do I need to reinstall mxnet library with tensorrt support? I guess it is the former one since I can successfully call mxnet.contrib.tensorrt .

I mean you need "to reinstall mxnet library with tensorrt support".  But if you can "successfully call mxnet.contrib.tensorrt", then I assume you're using the build that enable TensorRT backend. Then please try to add os.environ['MXNET_USE_TENSORRT'] = '1'  in your scripts. Please read this documentation for full details:
https://github.com/apache/incubator-mxnet/blob/master/docs/tutorials/tensorrt/inference_with_trt.md

I mean you need "to reinstall mxnet library with tensorrt support". But if you can "successfully call mxnet.contrib.tensorrt", then I assume you're using the build that enable TensorRT backend. Then please try to add os.environ['MXNET_USE_TENSORRT'] = '1' in your scripts. Please read this documentation for full details:
https://github.com/apache/incubator-mxnet/blob/master/docs/tutorials/tensorrt/inference_with_trt.md
Here is the result after I tried to follow the document
My initial code:

sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch)
if not use_trt:
        self.model = mx.mod.Module(symbol=sym, context=self.ctx, label_names = None)
        self.model.bind(data_shapes=[('data', (1, 3, image_size[0], image_size[1]))], for_training=False)
        self.model.set_params(arg_params, aux_params)
else:
        print('------------ Using tensorrt for face detection --------------')
        trt_sym = sym.get_backend_symbol('TensorRT')
        mx.contrib.tensorrt.init_tensorrt_params(trt_sym, arg_params, aux_params)
        mx.contrib.tensorrt.set_use_fp16(False)
        self.model = trt_sym.simple_bind(ctx=self.ctx, data = (1,3,image_size[0], image_size[1]), grad_req='null', force_rebind=True)
        self.model.copy_params_from(arg_params, aux_params)

I added one line according to your answer
sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch)
if not use_trt:
        self.model = mx.mod.Module(symbol=sym, context=self.ctx, label_names = None)
        self.model.bind(data_shapes=[('data', (1, 3, image_size[0], image_size[1]))], for_training=False)
        self.model.set_params(arg_params, aux_params)
else:
        print('------------ Using tensorrt for face detection --------------')
        os.environ['MXNET_USE_TENSORRT'] = '1'
        trt_sym = sym.get_backend_symbol('TensorRT')
        mx.contrib.tensorrt.init_tensorrt_params(trt_sym, arg_params, aux_params)
        mx.contrib.tensorrt.set_use_fp16(False)
        self.model = trt_sym.simple_bind(ctx=self.ctx, data = (1,3,image_size[0], image_size[1]), grad_req='null', force_rebind=True)
        self.model.copy_params_from(arg_params, aux_params)

But I still got the error:
mxnet.base.MXNetError: [06:56:32] src/c_api/../operator/subgraph/subgraph_property.h:367: Check failed: it != prop_ptr_map_.end(): SubgraphProperty TensorRT is not found in SubgraphPropertyRegistry
Then I tried alternative in that document and changed my code to:
sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch)
if not use_trt:
        self.model = mx.mod.Module(symbol=sym, context=self.ctx, label_names = None)
        self.model.bind(data_shapes=[('data', (1, 3, image_size[0], image_size[1]))], for_training=False)
        self.model.set_params(arg_params, aux_params)
else:
        print('------------ Using tensorrt for face detection --------------')
        os.environ['MXNET_USE_TENSORRT'] = '1'
        arg_params.update(aux_params)
        all_params = dict([(k, v.as_in_context(self.ctx)) for k,v in arg_params.items()])
        self.model = mx.contrib.tensorrt.tensorrt_bind(sym, ctx=self.ctx, all_params=all_params, data=batch_shape, grad_req='null', force_rebind=True)

But still got an errro:
AttributeError: module 'mxnet.contrib.tensorrt' has no attribute 'tensorrt_bind'
Below is my mxnet information:
Name: mxnet-cu100mkl
Version: 1.5.0
Summary: MXNet is an ultra-scalable deep learning framework. This version uses CUDA-10.0 and MKLDNN.
Home-page: https://github.com/apache/incubator-mxnet
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache 2.0
Location: /opt/conda/lib/python3.7/site-packages
Requires: numpy, requests, graphviz
Required-by:
Is that because I am using wrong version of mxnet?
Appreciate for any help!

@KellenSunderland @Caenorst

@Zheweiqiu please let us know if building with TENSORRT solves the issue.
@mxnet-label-bot add [Question, Build, Pending Requester Info]

Still facing the same problem after trying approaches listed above, can you take a look at it?
Thanks in advance!

@Zheweiqiu Can you show the whole process / script that you did for building MXNet ?

@Zheweiqiu Can you show the whole process / script that you did for building MXNet ?

I am using retinaface mxnet model and the code is basically from github. I want to speed up the reference using tensorrt, so I modify it a little bit.
The whole scrip is too long so I only attach modification I make. Below is original code from line 113 to 138.
`    sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch)
if self.ctx_id>=0:
self.ctx = mx.gpu(self.ctx_id)
self.nms = gpu_nms_wrapper(self.nms_threshold, self.ctx_id)
else:
self.ctx = mx.cpu()
self.nms = cpu_nms_wrapper(self.nms_threshold)
self.pixel_means = np.array(pixel_means, dtype=np.float32)
self.pixel_stds = np.array(pixel_stds, dtype=np.float32)
self.pixel_scale = float(pixel_scale)
print('means', self.pixel_means)
self.use_landmarks = False
if len(sym)//len(self._feat_stride_fpn)==3:
self.use_landmarks = True
print('use_landmarks', self.use_landmarks)
if self.debug:
  c = len(sym)//len(self._feat_stride_fpn)
  sym = sym[(c*0):]
  self._feat_stride_fpn = [32,16,8]
print('sym size:', len(sym))

image_size = (640, 640)
self.model = mx.mod.Module(symbol=sym, context=self.ctx, label_names = None)
self.model.bind(data_shapes=[('data', (1, 3, image_size[0], image_size[1]))], for_training=False)
self.model.set_params(arg_params, aux_params)`

I change it to
`        if use_trt:
os.environ['MXNET_USE_TENSORRT'] = '1'
sym, arg_params, aux_params = mx.model.load_checkpoint(prefix, epoch)
if self.ctx_id>=0:
self.ctx = mx.gpu(self.ctx_id)
self.nms = gpu_nms_wrapper(self.nms_threshold, self.ctx_id)
else:
self.ctx = mx.cpu()
self.nms = cpu_nms_wrapper(self.nms_threshold)
self.pixel_means = np.array(pixel_means, dtype=np.float32)
self.pixel_stds = np.array(pixel_stds, dtype=np.float32)
self.pixel_scale = float(pixel_scale)
#print('means', self.pixel_means)
self.use_landmarks = False
if len(sym)//len(self._feat_stride_fpn)==3:
self.use_landmarks = True
#print('use_landmarks', self.use_landmarks)
    if self.debug:
        c = len(sym)//len(self._feat_stride_fpn)
        sym = sym[(c*0):]
        self._feat_stride_fpn = [32,16,8]
    #print('sym size:', len(sym))

    image_size = (640, 640)
    if not use_trt:
        self.model = mx.mod.Module(symbol=sym, context=self.ctx, label_names = None)
        self.model.bind(data_shapes=[('data', (1, 3, image_size[0], image_size[1]))], for_training=False)
        self.model.set_params(arg_params, aux_params)
    else:
        print('------------ Using tensorrt for face detection --------------')
        #'''
        trt_sym = sym.get_backend_symbol('TensorRT')
        mx.contrib.tensorrt.init_tensorrt_params(trt_sym, arg_params, aux_params)
        mx.contrib.tensorrt.set_use_fp16(False)
        self.model = trt_sym.simple_bind(ctx=self.ctx, data = (1,3,image_size[0], image_size[1]), grad_req='null', force_rebind=True)
        self.model.copy_params_from(arg_params, aux_params)
        '''
        arg_params.update(aux_params)
        all_params = dict([(k, v.as_in_context(self.ctx)) for k,v in arg_params.items()])
        self.model = mx.contrib.tensorrt.tensorrt_bind(sym, ctx=self.ctx, all_params=all_params, data=batch_shape, grad_req='null', force_rebind=True)
        '''

`
When I set use_trt=True, I get the following error:
[32, 16, 8] {'32': {'SCALES': (32, 16), 'BASE_SIZE': 16, 'RATIOS': (1.0,), 'ALLOWED_BORDER': 9999}, '16': {'SCALES': (8, 4), 'BASE_SIZE': 16, 'RATIOS': (1.0,), 'ALLOWED_BORDER': 9999}, '8': {'SCALES': (2, 1), 'BASE_SIZE': 16, 'RATIOS': (1.0,), 'ALLOWED_BORDER': 9999}}
[07:01:19] src/nnvm/legacy_json_util.cc:209: Loading symbol saved by previous version v1.3.0. Attempting to upgrade...
[07:01:19] src/nnvm/legacy_json_util.cc:217: Symbol successfully upgraded!
------------ Using tensorrt for face detection --------------
Traceback (most recent call last):
File "test_server_flask_celebrity.py", line 32, in
celebrity = cm_model.CelebModel(args)
File "/home/qiuzhewei/celeb_test/src/test_celeb_model.py", line 71, in init
detector = RetinaFace(args.detectmodel, 0, args.gpu, 'net3')
File "/home/qiuzhewei/celeb_test/RetinaFace/retinaface.py", line 227, in init
trt_sym = sym.get_backend_symbol('TensorRT')
File "/opt/conda/lib/python3.7/site-packages/mxnet/symbol/symbol.py", line 2564, in get_backend_symbol
check_call(_LIB.MXGenBackendSubgraph(self.handle, c_str(backend), ctypes.byref(out)))
File "/opt/conda/lib/python3.7/site-packages/mxnet/base.py", line 253, in check_call
raise MXNetError(py_str(LIB.MXGetLastError()))
mxnet.base.MXNetError: [07:01:19] src/c_api/../operator/subgraph/subgraph_property.h:367: Check failed: it != prop_ptr_map.end(): SubgraphProperty TensorRT is not found in SubgraphPropertyRegistry
Stack trace:
[bt] (0) /opt/conda/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x4a357b) [0x7f9b1a05d57b]
[bt] (1) /opt/conda/lib/python3.7/site-packages/mxnet/libmxnet.so(MXGenBackendSubgraph+0x1ab) [0x7f9b1c1d15db]
[bt] (2) /opt/conda/lib/python3.7/lib-dynload/../../libffi.so.6(ffi_call_unix64+0x4c) [0x7f9b53e81ec0]
[bt] (3) /opt/conda/lib/python3.7/lib-dynload/../../libffi.so.6(ffi_call+0x22d) [0x7f9b53e8187d]
[bt] (4) /opt/conda/lib/python3.7/lib-dynload/_ctypes.cpython-37m-x86_64-linux-gnu.so(_ctypes_callproc+0x2ce) [0x7f9b54300f7e]
[bt] (5) /opt/conda/lib/python3.7/lib-dynload/_ctypes.cpython-37m-x86_64-linux-gnu.so(+0x139b4) [0x7f9b543019b4]
[bt] (6) python(_PyObject_FastCallKeywords+0x49b) [0x55b7bc065d2b]
[bt] (7) python(_PyEval_EvalFrameDefault+0x537e) [0x55b7bc0c17ae]
[bt] (8) python(_PyFunction_FastCallKeywords+0xfb) [0x55b7bc06479b]
And I have no idea how to solve it. Any help will be appreciate!

@Zheweiqiu Sorry, I asked you about the process for BUILDING MXNet.

@Zheweiqiu Sorry, I asked you about the process for BUILDING MXNet.

You mean the process of building model? I am using the pretrained model from github-retinaface under "RetinaFace Pretrained Models" section

We suggested your rebuild MXNet from Source with TensorRT and you said you did it. Did you ?

@Caenorst I can see a misunderstanding here that you meant to build MXNet with TensorRT support but @Zheweiqiu thought it meant to build the model. I hit this problem with exactly the same error message, and am willing to dig deeper by rebuilding MXNet with TensorRT support. However, I don't see instructions in the doc, or the make options. Wondering do you mind pointing us to the proper doc? Thanks for your time!


HDFS-173XX. just test yetus.

Description of PR
Use read write lock in DiskBalancer.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
7m  8s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
31m 21s

trunk passed

+1 :green_heart:
compile
0m 42s

trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
compile
0m 36s

trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08

+1 :green_heart:
checkstyle
0m 38s

trunk passed

+1 :green_heart:
mvnsite
0m 44s

trunk passed

+1 :green_heart:
javadoc
0m 41s

trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
1m  0s

trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08

+1 :green_heart:
spotbugs
1m 42s

trunk passed

+1 :green_heart:
shadedclient
20m 23s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 37s

the patch passed

+1 :green_heart:
compile
0m 37s

the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javac
0m 37s

the patch passed

+1 :green_heart:
compile
0m 35s

the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08

+1 :green_heart:
javac
0m 35s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

-0 :warning:
checkstyle
0m 30s
/results-checkstyle-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs-project/hadoop-hdfs: The patch generated 1 new + 3 unchanged - 0 fixed = 4 total (was 3)

+1 :green_heart:
mvnsite
0m 35s

the patch passed

+1 :green_heart:
javadoc
0m 31s

the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
0m 57s

the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08

+1 :green_heart:
spotbugs
1m 44s

the patch passed

+1 :green_heart:
shadedclient
20m 31s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
184m 23s

hadoop-hdfs in the patch passed.

+1 :green_heart:
asflicense
0m 27s

The patch does not generate ASF License warnings.

277m  6s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6424/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6424

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 54f6eaead4cd 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / ea7a1f7c087b2dbf9e950749c079caa86306ac55

Default Java
Private Build-1.8.0_392-8u392-ga-1~20.04-b08

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6424/1/testReport/

Max. process+thread count
4259 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6424/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

_ Prechecks _

+1 :green_heart:
dupname
0m 01s

No case conflicting files found.

+0 :ok:
spotbugs
0m 00s

spotbugs executables are not available.

+0 :ok:
codespell
0m 00s

codespell was not available.

+0 :ok:
detsecrets
0m 00s

detect-secrets was not available.

+1 :green_heart:
@author
0m 01s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m 00s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
89m 49s

trunk passed

+1 :green_heart:
compile
6m 02s

trunk passed

+1 :green_heart:
checkstyle
4m 48s

trunk passed

+1 :green_heart:
mvnsite
6m 35s

trunk passed

+1 :green_heart:
javadoc
5m 55s

trunk passed

+1 :green_heart:
shadedclient
147m 43s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 46s

the patch passed

+1 :green_heart:
compile
3m 31s

the patch passed

+1 :green_heart:
javac
3m 31s

the patch passed

+1 :green_heart:
blanks
0m 00s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
2m 19s

the patch passed

+1 :green_heart:
mvnsite
4m 10s

the patch passed

+1 :green_heart:
javadoc
3m 31s

the patch passed

+1 :green_heart:
shadedclient
160m 10s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
asflicense
5m 19s

The patch does not generate ASF License warnings.

424m 32s

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hadoop/pull/6424

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
MINGW64_NT-10.0-17763 c80a50dbe9d6 3.4.10-87d57229.x86_64 2024-02-14 20:17 UTC x86_64 Msys

Build tool
maven

Personality
/c/hadoop/dev-support/bin/hadoop.sh

git revision
trunk / ea7a1f7c087b2dbf9e950749c079caa86306ac55

Default Java
Azul Systems, Inc.-1.8.0_332-b09

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch-windows-10/job/PR-6424/1/testReport/

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch-windows-10/job/PR-6424/1/console

versions
git=2.44.0.windows.1

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.


Improve module info output.

Enhance the output with more details, for example list all available versions of the inspected module.


Outdated planning tool

How am I meant to present a capacity planning report to a potential customer if the deployment planner tool is out of date? I'm producing a report to a customer but out of their 73 profiled VMs, 39 are showing as incompatible as they are running CentOS 7 x64. Obviously I'm aware they are supported but this doesn't look very professional having to tell the customer that Microsoft's own deployment tool isn't up to date? Suggestions?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: aa9a9a9e-e47f-2c35-752e-4d026f0fca93
Version Independent ID: c23d2cb9-c2d0-505c-5a58-53074fcd373b
Content: Azure Site Recovery Deployment Planner for VMware disaster recovery - Azure Site Recovery
Content Source: articles/site-recovery/site-recovery-deployment-planner.md
Service: site-recovery
GitHub Login: @mayurigupta13
Microsoft Alias: mayg

@Alex-Derbyshire can you post a link to the doc you are referring to?

Hi, looks like the planning tool version for ASR was last updated in August 2019 https://aka.ms/asr-deployment-planner since then there has been more support added for OS's for ASR.  The deployment planner tool should be updated as soon as ASR support has been updated.

@Alex-Derbyshire Thanks for the feedback. We are actively investigating and will get back to you soon.

@Rajani-Janaki-Ram & @mayurigupta13  - is there any plan to routinely update the deployment planner so it's on par with the supported OS's
@rayne-wiselman  - fyi

We typically refresh the OSes list once in 4-6 months. We are working on the next refresh and it should be available by next month.

Thanks for the update, @mayurigupta13 - Is there any plans to shorten this cycle?
Also, How can end users get the latest update of upcoming refresh? will there be a blogpost when this is released?
@Alex-Derbyshire  - sorry for the inconvenience here. we will make sure this is made public once the refresh is released.
We will now close this issue. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.

We add the update notification in the release notes and also update the Deployment Planner history article here : https://docs.microsoft.com/en-us/azure/site-recovery/site-recovery-deployment-planner-history


Bug in Autodoc Github Action: Fails to build due to lack of user.properties file

This was fixed with #51


fix missing attribute error when changing host/ip

When changing the host/ip I get this error:
File "/config/custom_components/senec/config_flow.py", line 486, in async_step_system
AttributeError: 'SenecOptionsFlowHandler' object has no attribute '_host_in_configuration_exists'

This PR should fix it.

Thanks for the PR...
I would like to avoid duploicate code when possible - so declearing host_in_configuration_exists() as static method and use if from ConfigFow & OptionsFlow classes is IMHO a better approch - I just made a corresponding comit to the master branch

My Python knowledge is quite limited, so I'm happy that you improved the code. :) Extracting a static method here sounds like a good solution.
I'll close this PR then, since you made a commit on master with the changes.


redeemInVault functionality added with tests.

Pull Request Test Coverage Report for Build 1056

14 of 14 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 1049:
0.0%

Covered Lines:
346

Relevant Lines:
346

💛  - Coveralls


Narrow down alias autocompletion to selected file

Hello,
In your documentation HERE you wrote "Aliases will be selected from files in current folder."
In my opinion autocompleting aliases in scope of the files in current folder don't bring any value (I don't see it)
Because aliases are reset before each test run. So I don't see a reason to display autocompletion from other files in folder.
What is my problem with it?
So I find it disturbing.  Because I get a lot of duplicated alias autocompletions.
In files in current folder I use several times the same name of the alias.

As you can see it gets very messy.
Describe the solution you'd like
I will be very happy if aliases autocompletion will be done only for current file.
Or providing option to change this behavior. From scope of files in current folder to only current file.

Hi @HubertArciszewski95
Thank you for your feedback.

In my opinion autocompleting aliases in scope of the files in current folder don't bring any value (I don't see it)
Because aliases are reset before each test run. So I don't see a reason to display autocompletion from other files in folder.

Actually we were using aliases in page/functionality abstractions thus restricting alias lookup just for specific folder where those functions lived. For the sake of readability we also were assigning meaningful names to aliases, so almost never had duplicates in a list. As your use case may be different, I have released v3.6.0 with a new configuration option aliasAutocompletionForCurrentFile which could be set as true and in such case will search for aliases in current file only.
Hope that helps.

Hi @Shelex
Thanks for fast response and for the fix :)
As mentioned in previous issue, when new version will be available then I will retest this.


Error implementing  project into existing application

Hello,
I'm just starting to add Chat SDK into my application, but I'm running into some issues when adding the dependencies.  I get 5 runtime errors upon trying to add the dependencies.
Invoke-customs are only supported starting with Android O (--min-api 26)
Message{kind=ERROR, text=Invoke-customs are only supported starting with Android O (--min-api 26), sources=[Unknown source file], tool name=Optional.of(D8)}
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /.gradle/caches/transforms-1/files-1.1/chat-sdk-firebase-adapter-4.0.26.aar/c3977c4dc777183e21c3a6de520570d5/jars/classes.jar
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
Caused by: com.android.tools.r8.utils.AbortException

I saw this may be due to not updating to JDK 1.8, so I added those in the compile options, but then I got a new error.
Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
Any help would be appreciated. Thanks!

Hey, did you solved it?

@michaelaki @mechaadi There have been many modifications made to the app over the past few months. If this problem still persists in the newest version of Chat SDK, please re-open this issue.


Get Rid of the Dependences which requires build when npm install

Currently, lots of developers struggle with the installation of the Wechaty because their environments leak of the build-tools.
A better way to solve this problem is to replace the npm modules that require build when install, to the module can work out-of-the-box.
Npm Module That Requires Build When Npm Install

node-expat(xml2json)
nosql-leveldb
...

Had cleaned most of them.


Fix/tags

k it done

📝 Changed routes:

/admin/scan
/dashboard/scan-in

(view full size)
(view full size)

Commit db75920ed83e4bd69a0e5aa7aa451f3be4515c90 (https://hackportal-cg88mgfc0-acmutd.vercel.app).


⚠ Bofrost.es has degraded performance

In 2108606, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1594 ms

Resolved: Bofrost.es performance has improved in 41d28c0 after 6 minutes.


Applying UMAP to directly to non-kNN adjacency matrices

I know it's possible to apply UMAP directly to a precomputed graph by using metric='precomputed'.  In the current implementation, it does not seem possible to apply UMAP directly to a precomputed graph in which each node has variable out-degree. In principle, do the graphs necessarily need to be k-nearest neighbor graphs?

I constructed my own graph by stitching together multiple k-nearest-neighbor graphs and filtering out edges based on some arbitrary criteria. The resulting graph therefore did not have the same out-degree for each node and so I could not generate knn_indices and knn_dists for my graph. However, I noticed in the compute_membership_strengths you have the following line:
           if knn_indices[i, j] == -1:                 continue  # We didn't get the full knn for i
My hacky workaround was then simply to just pad my graph with dummy neighbors for each node with node ID '-1' to be able to generate knn_indices which I could then pass into fuzzy_simplicial_set. I did something similar to construct knn_dists, using an arbitrary large distance value for dummy neighbors. It seems to work as intended!


tests: remove nil from hang-closing tests

There is not much value in running all tests with it to see that the
default is used.

ping @jakar


Add optional compression of Client / Server comms

Uses of msgpack were replaced with a call to a Compression and Serialisation utility, where compression, based on a config setting, is applied.
Compression can be asymetrically enabled or disabled across workers and learners, since a "with compression" flag is prepended to every msgpack payload.
The reading of the config should be reviewed, as it was not clear how I should apply settings that are completely unrelated to models/training.
BREAKING CHANGES:

All msgpack serialisation has changed, and this code is not backward compatible. Redis should be cleared and workers and learners would need to be updated
A new dependency was added, lz4

These changes were merged in along with #34


Throw an error if the states function is used with a domain

This pull request implements an error throwing if the states function is used with a domain instaed of an entity id.

coverage: 100.0%. remained the same
when pulling 6ee95ad7d59d4398e1da91c5ace15c350fb2d3ff on throw_error_if_states_function_is_used_with_domain
into 2382dd02539d665e1b0a1262dcfdef037c686e21 on master.


Theta for H36M

Hi Benjie,
For training on (A)H36M, it seems $\Theta$ annotations are required. Did you release this data?
Thanks & Regards,

Hi @GloryyrolG - unfortunately due to license limitations we cannot release the SMPL parameters for H36M. However, as suggested in the SPIN library it should be possible to train using alternative datasets where these parameters are available.

Hi Benjie,
May I know what resources of SMPL parameters you used to train the model? Is that from SMPLify-X or NeuralAnnot, etc.?
Thanks & Regards, Happy New Year


Some small performance gain in GRFilter matching

I don't understand what's happening here, but I think this PR caused some issues. It seems like Wasabi filters sometimes aren't matching when they should.

if that's the case, test case missing


Supporting OpenRadiant: A generic "standalone" version of the GtkRadiant editor

Hi there,
I recently had some time to clean up our fork of GtkRadiant (called OpenRadiant) and thought you might be interested in it for your project.
http://thamessoftware.co.uk/openradiant/
It is basically a version of GtkRadiant that is no longer dependent on the Quake engine. I.e textures are loaded straight from disk (from the directory containing the .map file) rather than from pk3 files. It exports to obj with its own internal baking (though from what I can see you project loads in .map files directly which is actually much nicer).
In some ways it might be simpler than creating a "fake engine" directory and reusing existing Quake III mapping tools.
Cheers,

I see. To be fair, reading the .map files directly is a nicer solution. If you already have that in place then you don't really need OpenRadiant. Perhaps there could be a slight convenience that the textures could be stored in the same folder as the .map file during editing, but this feature is unlikely to sway anyone if they already like using Trenchbroom.
OpenRadiant is still maintained as and when needed (though not specifically adding features), so if anyone does specifically want to use it with your plugin and you need some changes on my end, just let me know.
Many thanks for getting back to me :)

My mistake, I accidentally pressed "comment and close" and couldn't quite find a way to undo it (I'm not much of a GitHub web user). However, I now see a re-open button whilst replying to this comment, so will select that.


add all dns characters to alias names

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Hello, at the moment we evaluate OPNsense to replace our current firewall. We had a lot of hosts in our FW and when we add/create hosts we use IP and DNS-Name, but it looks like that is not possible with OPNsense, but Alias don't support '.' and '-' its not possible.
btw: it would also be good to find the alias not only by the name, also with the IP-address
Describe the solution you'd like
I would like an input field in the /ui/firewall/alias which would add the possibility to use '.' and '-'
And also make it possible to search via IP in /firewall_rules_edit.php
Describe alternatives you've considered
when you add an host IP and dns must match, if you wnat you can add a Tag/Alias, but everything must be searchable

alias names are bound by the rules the underlaying technology (pf) has set, you can use any description you like, names need to follow rules.

https://github.com/opnsense/core/issues/1434
I requested the same 3.5 years ago.
It's not nice but we replace - with _ currently.
I would also like to see this.

Technical limitation and work required aside--is this a real world issue after 3.5 years of going without this? What do you expect from fixing this?

It is not a real issue, it is an inconvenience and annoyance.
When you script opnsense, you always have to "translate" computer-names and usernames aso.
The same for wireguard endpoint names. No .-_ allowed


Sharabesh2

This includes the changes suggested in the email.

new file:   .DS_Store
new file:   .SR_Board.brd.lck
new file:   .SR_Board.sch.lck
new file:   Board.brd
new file:   Board.s#1
new file:   Board.s#2
new file:   Board.s#3
new file:   Board.s#4
new file:   Board.sch

I think I went through and removed all the extra files. I also updated my gitignore, but I'm not sure if that fixed the problem. Let me know if anything else needs to be removed.

Closing pull request--- may end up removing last commit if it is redudant with history from RevA


macOS Agent does not utilize default "path" settings

It looks like the macOS agent does not utilize the default paths for the buildkite-agent as installed via homebrew.
The agent does not look in /usr/local/etc/buildkite-agent/hooks for example.  Instead, you must specify hooks-path in the agent configuration.  Additionally, no default plugins directory is installed by default, so the first time you go to use a plugin you receive an error message and have to a) add it to the configuration and b) create the appropriate directory.
Some documentation warning that this is the default behaviour would be nice, even better would be if the default directories were created on macOS and would be used without having to be explicitly configured in the agent 😄
Thanks!

Hi @troyfontaine! Thank you for opening this issue 😄
It looks like some time between filing this issue these have been addressed in the Homebrew formula. Both directories are now given a default configuration. The formula creates the hooks directory, and the agent itself lazily creates the plug-ins directory.
Hopefully these changes address your issue if not please let me know and I’ll see what we can do! 😄


parser does not seem to be optional

I keep getting parser being undefined as an error when trying to work with useContentful in this checkCache function:
var checkCache = function checkCache(props) {
  if (props === void 0) {
    props = {};
  }

  var _props2 = props,
      contentful = _props2.contentful,
      parser = _props2.parser;

  if (!contentful) {
    return null;
  }

  if (!contentful.client) {
    return null;
  }

  var cacheKey = generateCacheKey(props);
  var cache = contentful.client.checkCache(cacheKey);
  return cache ? parser(cache, props) : null;
};

same issue here

Thanks @davidtai and @MichaelDM for catching this! I just pushed up a new version that should address it. Let me know if you run into any other issues.


Out of date already

[Enter feedback here]
Article is 21 days old and already the options discussed don't exist so this article is useless.  I thought the government was blocking my access and I logged into my personal account and the options don't exist, there is no "manual extract"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0a3c6628-8673-e44d-9a17-553030b6b29d
Version Independent ID: 679b1654-ffe3-5811-6985-9333195b34d0
Content: Use the document processing model in Power Automate - AI Builder
Content Source: ai-builder-docs/form-processing-model-in-flow.md
Service: aibuilder
GitHub Login: @JoeFernandezMS
Microsoft Alias: jofernan

@iooab10 - Thanks for contacting us. As we haven’t heard back from you, I am closing this issue. If you need further help, please reopen the issue or open a new issue.


Declare class factories, such as Backbone Models?

Extensive googling and reading through docs and examples didn't show any example of a very common pattern in Javascript - having functions that return classes. A canonical example is Backbone:
var User = Backbone.Model.extend({
  getFullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');
  }
});

var exampleUser = new User();
exampleUser.set('firstName', 'Johny'); //set() is a method from Backbone.Model
exampleUser.set('lastName', 'Something');
exampleUser.getFullName(); //method coming from User class

In JSDoc, I could annotate the class as follows, with some IDEs being able to figure out a decent autocompletion:
/**
 * @class User
 * @augments Backbone.Model
 */
var User = Backbone.Model.extend(/**@lends User.prototype */{
  getFullName: function() {...}
});

Is there any way how to properly annotate this pattern in Flow?

You can use intersection type to annotate extend. http://flowtype.org/docs/union-intersection-types.html#_

Do you mean to collect all possible return types in a construct like this?
class Backbone.Model {
  static extend: ((clsDef: any) => Class<User>) & ((clsDef: any) => Class<Permission> & ((clsDef: any) => Class<UserGroup>);
}

That still leaves the question of how to tell Flow about the new type. The only possible way I can think of is to duplicate the information in a separate "type" construction (below), which mandates each method or property to be duplicated.
declare class User {
  getFullName(): string;
};

var User = (Backbone.Model.extend({
  getFullName: function() {
    return this.get('firstName') + ' ' + this.get('lastName');
  }
}): Class<User>);

declare class Backbone.Model {
  static extend<T>(def: T): Class<T & Backbone.Model>
}

I think this issue should go to stackoverflow...

I agree, the issue moved to
http://stackoverflow.com/questions/33023860/flowtype-how-to-write-declaration-for-class-factories-such-as-backbone-models


[min|max]-date does nothing

Demo does not demonstrate min-date, max-date, minDate or maxDate working.
Very easy to recreate, just try to use any of the above attributes.
I'm currently under a time constraint so I wasn't able to debug as deep as I normally would have liked, so I apologize for the shallow analysis. My initial breakpoints indicated the values are always null.

In the paper-calendar
     /* TODO: figure out a user-friendly way to auto-populate years
     * It takes more time on mobile, so there should be some indication that a
     * year is loading. One idea is to make it so that when the user scrolls to
     * the bottom, an indicator appears showing that the content for that year is
     * loading. We'd need extra logic to handle scrolling and removal of years
     * that are hidden from view.
    loadMoreUpper: function() {
    },
    loadMoreLower: function() {
    }
    */

If you want to support maxDate and show another year you can fix this by add loop on the year
replace the populate function from the paper-calendar with this.
 populate: function(currYear, minDate, maxDate) {
  var months = [];
  var month, weeks, day, d, dayInfo, monthData, date = new Date();

  var minYear, maxYear;
  if (maxDate) {
      maxYear = maxDate.getFullYear();
  } else {
      maxYear = currYear;
  }
  if (minYear) {
      minYear = minDate.getFullYear();
  } else {
      minYear = currYear
  }

  for (var year = minYear; year <= maxYear; year++) {
      date.setYear(year);
      date.setHours(0, 0, 0, 0);

      var startMonth = 0;
      var endMonth = 12;
      if (minDate && year === minDate.getFullYear()) {
          startMonth = minDate.getMonth();
      }
      if (maxDate && year === maxDate.getFullYear()) {
          endMonth = maxDate.getMonth() + 1;
          console.log()
      }

      for (month = startMonth; month < endMonth; month++) {
          weeks = [
              []
          ];
          day = 1;
          date.setMonth(month);
          date.setDate(1);

          // add "padding" days
          for (d = 0; d < date.getDay(); d++) {
              weeks[0].push({
                  day: null
              });
          }

          // add actual days
          while (date.getMonth() === month) {
              if (d % 7 === 0) {
                  // start new week
                  weeks.push([]);
              }
              dayInfo = {
                  date: new Date(year, month, day),
                  name: this.isoFormat(year, month, day),
                  year: year,
                  month: month,
                  day: day,
              };
              weeks[weeks.length - 1].push(dayInfo);
              date.setDate(++day);
              d++;
          }
          monthData = {
              year: year,
              month: month,
              weeks: weeks,
              domReady: false
          };
          months.push(monthData);
      }
  }
  this.set('_months', months);

}

I've also reproduced the issue with those attributes.

Fixed in 1.1.0


Give access to Lucene implementation on stout

John - how could we provide access to at least some folks working on queries to the lucene search implementation on the livejournal data on stout?

Hey @peparedes, if you "@-mention" people, it will automatically show up in their git inbox (and maybe trigger an email, depending on settings). John hasn't accepted his invite to this repo, though - so maybe we should ask / remind him to.
But more importantly, is this still necessary - or are we able to simply use Lucene with the index files I copied to mercury?

Seems we could use the I deres you copied...  Gene is looking into it.
John offered to make it work as well...  Buy yes,  he needs to accept
first.
P
On Mar 3, 2015 10:38 AM, "Dav Clark"<EMAIL_ADDRESS>wrote:

Hey @peparedes https://github.com/peparedes, if you "@-mention" people,
it will automatically show up in their git inbox (and maybe trigger an
email, depending on settings). John hasn't accepted his invite to this
repo, though - so maybe we should ask / remind him to.
But more importantly, is this still necessary - or are we able to simply
use Lucene with the index files I copied to mercury?
—
Reply to this email directly or view it on GitHub
https://github.com/berkeley-dsc/destress/issues/12#issuecomment-77006233
.

I'm looking into it right now -- I'll let you know if I find success into using the indices (it looks likely, at least for the original format). But, another thing I'm worried about is the new concatenated files that we would be using? Since pierre now combined the files... the indices for the new searches will not be valid.

It's not clear that we need to be looking at the same files for all cases... I think it's fine for now if the lucene index returns the smaller / older files.

Just tested a few searches using some queries with the copied /index/ directory, and it seems valid/functional. It looks like we won't need to re-create indices.

Excellent!
Good job!
P
On Mar 4, 2015 3:27 AM, "geneyoo"<EMAIL_ADDRESS>wrote:

Just tested a few searches using some queries with the copied /index/
directory, and it seems valid/functional. It looks like we won't need to
re-create indices.
—
Reply to this email directly or view it on GitHub
https://github.com/berkeley-dsc/destress/issues/12#issuecomment-77142074
.

Can we close this issue? Seems like the remaining work is in #11 .


More columns in views like Reports, Nodes...

So, if I want more columns displayed in (for instance) the "Reports" view - do I have to manually edit app.py, or is there another supported way of displaying more information?

Hi @jby ! As of now - yes, that's the only way. But it should be easy to make a PR with making any view configurable with a method similar to the one used for customizing Inventory view - see http://github.com/voxpupuli/puppetboard/blob/01f0f3fc7177677665a334542d88c39b5e3b859b/puppetboard/app.py#L303-L325 .

I too am interested in adding additional columns.   We have a custom fact for cnames which are more meaningful than the certnames/hostnames.  I was hoping I wouldn't have to fork the code to provide an additional column.  I'm not a python guy, but if it is 'easy'... perhaps someone would be so kind and address before another 3 years pass? :)


ci-status without local repo

Currently I am trying to retrieve ci-status from a repo.
Looking at the code, it seems like it enforces a local repo clone!? Could someone please explain why that is?
AFAIK the ci-status is not directly linked to the git graph and thus should work fine without a local clone (which takes time).
The problem is made worse by the fact that cloning is non-trivial in a containerized environment (Kubernetes).
I was hoping that hub clone would do the trick in combination with GITHUB_TOKEN but it seems like I missed the point of hub clone.

You are correct in your observations—hub was primarily designed to be run from the context of a git repo.
This requirement makes less sense for commands such as ci-status, I agree. We are considering adding a --repo=OWNER/REPO flag to all commands so that you may run them without having to clone or cd into anything. Please follow for updates https://github.com/github/hub/issues/2338
In the meantime, you can work around this by initializing an empty repository, no need to clone anything:
git init
git remote add origin "https://github.com/OWNER/REPO"
hub ci-status ...

It's a bit clumsy but it's cheap and will work well.

It might look a bit clumsy but it's cheap (resource-wise) and will work well.

Not really. It is a private repo. So I would have to setup a whole ssh setup inside the Container. Which seems like pure overkill.
For now I work around this with:
hub api repos/$GITHUB_REPOSITORY/commits/master/status | jq -r .state

It is a private repo. So I would have to setup a whole ssh setup inside the Container. Which seems like pure overkill.

Hub does all its API operations over HTTPS, not SSH. As my workaround above doesn't involve any cloning whatsoever, you don't need to set up SSH. You only need to provide hub with a GITHUB_TOKEN that has access to your private repo.

Hub does all its API operations over HTTPS, not SSH. As my workaround above doesn't involve any cloning whatsoever (adding the git remote is only so that hub can pick up the repository URL), you don't need to set up SSH. You only need to provide hub with a GITHUB_TOKEN that has access to your private repo.

If you look at my example, I want to get the status of master. In your empty local clone, it cannot lookup master and thus complains: Aborted: no revision could be determined from 'master'

Ah sorry, you're right. hub ci-status does try to de-reference arguments passed using the local git repo.
Your hub api workaround is better. 🙇


RFC: Your Proposal

Summary
Add a way to use environment variables for the schema url
Proposed Solution
Allow to use environment variables within the plugins configuration
The plugin should also allow to load environment variables from an env file
Given the following tsconfig.json

{
    "compilerOptions": {
        "plugins": [
            {
                "name": "gql.tada/ts-plugin",
                "environment": "./.env" // (optional) relative path to environment file
                "schemas": [
                    {
                        "name": "serviceA",
                        "schema": {
                            "url": "${SERVICE_A_BASE_URL}/delivery/graphql", // env usage with ${...}
                            "headers": {
                                "Accept": "application/graphql-response+json"
                            }
                        },
                        "tadaOutputLocation": "./src/GraphQL/ServiceA/graphql-env.d.ts",
                    },
                    {
                        "name": "serviceB",
                        "schema": {
                            "url": "${SERVICE_B_BASE_URL}/delivery/graphql", // env usage with ${...}
                            "headers": {
                                "Accept": "application/graphql-response+json"
                            }
                        },
                        "tadaOutputLocation": "./src/GraphQL/ServiceB/graphql-env.d.ts",
                    },
                ]
            }
        ]
    }
}

Without this feature switching between target environment e.g. local, integration, staging, production becomes a hazzle
Especially if hotfixing production directly we need to change the value in the .env and then again in the tsconfig which is often forgotten

There's some prior discussions on this on Discord and in a prior issue: https://github.com/0no-co/gql.tada/issues/324#issuecomment-2174277888
tl;dr: there's no point for the CLI and it won't make sense over established tools.
Furthermore, it's impossible in the tsconfig.json in general for editors, since your IDE does not have access necessarily to environment variables. This then necessitates injecting env-loading, which in turn is not a great idea.


Linechart not plotting correctly with large number of points

Is there some number of data points that are too much for a line chart?  I'm loading 609 heart rates here, the first chart is using iOS charts and the 2nd is using SwiftUI Charts.  It looks like the spike in the middle (a workout) should be tighter together).  Anything I can do to fix this? 🤔

mmm interesting,

what version of the package are you running?
What device?
Can you post some code?

struct LineChartDemoView: View {

    let data: LineChartData = weekOfData()

    var body: some View {

        LineChart(chartData: data)
            .id(data.id)
            .frame(minWidth: 150, maxWidth: 900, minHeight: 150, idealHeight: 500, maxHeight: 600, alignment: .center)
            .padding(.horizontal)

        .navigationTitle("Week of Data")
    }

    static func weekOfData() -> LineChartData {

        func makeDataSet() -> [LineChartDataPoint] {

            let datapoints: [LineChartDataPoint] = (1...600).map { index in
                if index < 240 {
                   return LineChartDataPoint(value: Double.random(in: 50...80))
                } else if index > 241 && index < 250 {
                    return LineChartDataPoint(value: Double.random(in: 90...100))
                } else if index > 251 && index < 290 {
                    return LineChartDataPoint(value: Double.random(in: 100...160))
                } else if index > 291 && index < 300 {
                    return LineChartDataPoint(value: Double.random(in: 160...180))
                } else if index > 301 && index < 350 {
                    return LineChartDataPoint(value: Double.random(in: 90...100))
                } else {
                    return LineChartDataPoint(value: Double.random(in: 60...80))
                }
            }
            return datapoints
        }

        let data = LineDataSet(dataPoints:
            makeDataSet(),
        legendTitle: "Steps",
        pointStyle: PointStyle(),
        style: LineStyle(lineColour: ColourStyle(colour: .red), lineType: .curvedLine, strokeStyle: Stroke(lineWidth: 1)))

        let chartStyle = LineChartStyle()

        return LineChartData(dataSets       : data,
                             metadata       : ChartMetadata(title: "Step Count", subtitle: "Over a Week"),
                             chartStyle     : chartStyle)

    }
}

Gives me:

Which looks right to me.
And with 2400 data points:

🤔 @willdale  I am running v 2.5.0 on iPhone 11 (iOS 14.5) I tried making sure your code was the same as mine but still seeing the different charts.  Can't figure out what might be different between yours and mine?

struct CurrentCard: View {
    var body: some View {
      LineChart(chartData: data)
                         .id(data.id)
                         .yAxisLabels(chartData: data)
                         .frame(minWidth: 150, maxWidth: 900, minHeight: 150, idealHeight: 500, maxHeight: 600, alignment: .center)
                         //.frame(height: 180, alignment: .center)
                        .padding(.horizontal)
    }

        private func makeLineChartData(heartRates: [CustomHeartRateObject]) -> LineChartData? {

        let data = LineDataSet(
        dataPoints: heartRates.map { LineChartDataPoint(value: $0.doubleValue) },
        legendTitle: "Heart Rates",
        pointStyle: PointStyle(),
        style: LineStyle(lineColour: ColourStyle(colour: .red), lineType: .curvedLine, strokeStyle: Stroke(lineWidth: 1))
        )
        let chartStyle = LineChartStyle()

          return LineChartData(dataSets       : data,
                             metadata       : ChartMetadata(title: "Heart Rates", subtitle: "Today"),
                             chartStyle     : chartStyle)

    }

If its helpful here is the data I am plotting:
66.0
59.0
59.0
59.0
60.0
59.0
61.0
68.0
65.0
61.0
63.0
60.0
61.0
60.0
57.0
58.0
59.0
58.0
60.0
61.0
63.0
62.0
58.0
58.0
72.0
63.0
63.0
62.0
62.0
60.0
59.0
59.0
58.0
56.0
56.0
58.0
58.0
59.0
59.0
59.0
61.0
60.0
61.0
61.0
59.0
59.0
59.0
61.0
59.0
59.0
59.0
59.0
60.0
61.0
59.0
59.0
58.0
58.0
56.0
55.0
52.0
59.0
59.0
59.0
59.0
60.0
62.0
61.0
60.0
63.0
60.0
60.0
60.0
60.0
60.0
60.0
59.0
58.0
58.0
59.0
57.0
55.0
58.0
59.0
58.0
57.0
58.0
58.0
58.0
58.0
60.0
58.0
59.0
57.0
57.0
64.0
59.0
58.0
58.0
58.0
54.0
54.0
53.0
58.0
56.0
55.0
55.0
56.0
55.0
54.0
53.0
54.0
53.0
50.0
56.0
50.0
55.0
58.0
55.0
53.0
55.0
55.0
55.0
54.0
55.0
58.0
56.0
58.0
56.0
55.0
54.0
56.0
56.0
55.0
54.0
57.0
58.0
57.0
58.0
57.0
60.0
56.0
59.0
58.0
66.0
60.0
59.0
60.0
55.0
57.0
58.0
58.0
65.0
63.0
58.0
57.0
55.0
53.0
56.0
55.0
56.0
97.0
121.0
82.0
61.0
60.0
86.0
86.0
95.0
99.0
103.0
108.0
119.0
118.0
116.0
114.0
114.0
114.0
112.0
118.0
133.0
130.0
127.0
126.0
125.0
110.0
103.0
104.0
107.0
107.0
105.0
102.0
102.0
101.0
99.0
111.0
113.0
116.0
112.0
116.0
116.0
107.0
107.0
107.0
106.0
104.0
102.0
102.0
101.0
101.0
103.0
103.0
104.0
104.0
104.0
103.0
103.0
103.0
104.0
102.0
103.0
97.0
92.0
93.0
95.0
95.0
96.0
94.0
94.0
93.0
88.0
88.0
91.0
96.0
93.0
88.0
160.0
128.0
128.0
131.0
141.0
146.0
146.0
136.0
135.0
130.0
131.0
131.0
134.0
142.0
141.0
132.0
127.0
127.0
127.0
123.0
126.0
123.0
120.0
117.0
115.0
114.0
114.0
113.0
113.0
112.0
111.0
113.0
109.0
108.0
109.0
109.0
110.0
110.0
110.0
111.0
156.0
153.0
152.0
159.0
162.0
165.0
161.0
160.0
160.0
159.0
158.0
151.0
147.0
154.0
152.0
152.0
153.0
152.0
159.0
159.0
158.0
157.0
154.0
155.0
156.0
156.0
157.0
152.0
150.0
149.0
147.0
144.0
141.0
139.0
137.0
137.0
128.0
125.0
125.0
124.0
125.0
124.0
124.0
123.0
124.0
126.0
126.0
126.0
132.0
172.0
170.0
166.0
171.0
173.0
172.0
170.0
169.0
166.0
165.0
166.0
166.0
165.0
163.0
179.0
175.0
174.0
171.0
169.0
168.0
171.0
172.0
173.0
172.0
174.0
174.0
172.0
170.0
170.0
167.0
166.0
163.0
164.0
163.0
161.0
163.0
163.0
163.0
161.0
163.0
161.0
163.0
165.0
166.0
167.0
169.0
170.0
170.0
171.0
179.0
178.0
177.0
174.0
171.0
171.0
175.0
176.0
176.0
178.0
178.0
177.0
176.0
175.0
174.0
172.0
171.0
175.0
177.0
178.0
178.0
179.0
180.0
179.0
177.0
174.0
173.0
172.0
172.0
171.0
172.0
173.0
172.0
161.0
161.0
159.0
157.0
155.0
149.0
148.0
147.0
148.0
148.0
150.0
149.0
143.0
142.0
143.0
135.0
135.0
135.0
135.0
132.0
131.0
132.0
128.0
128.0
129.0
129.0
129.0
130.0
131.0
130.0
130.0
131.0
125.0
126.0
123.0
125.0
125.0
126.0
129.0
123.0
123.0
124.0
126.0
124.0
124.0
125.0
123.0
129.0
130.0
128.0
129.0
129.0
126.0
127.0
128.0
127.0
127.0
124.0
119.0
112.0
120.0
102.0
102.0
99.0
94.0
91.0
79.0
78.0
77.0
72.0
73.0
75.0
71.0
74.0
78.0
75.0
78.0
69.0
69.0

This library currently only plots evenly spaced, this would mean if there is an area where there is more data, it will get spread out.
Could that explain it?

@willdale yes that must be it then, heart rate data from the Apple watch is sampled sporadically (e.g. more frequent during a workout, less frequent during other times of day).  🤔

Is there a date component in CustomHeartRateObject, you could average to the hour, minute, second?
It would be good if the library could handle more time/date based rendering but I'm not sure when I'll get time to look at it.

@willdale I tried interpolating a HR at every second of the day but that gives me over 56,000 values to chart so far today which I think might be too many as its crashing but I can't tell why.

A couple of Ideas:
To take inspiration from a Garmin app I use; to show a whole day they average to every two minutes - giving a maximum 720 data points for a day , then for workouts there is a separate chart that shows every second.
To take inspiration from Apple; to show a whole day they use a ranged bar chart showing the highest and lowest values in an hour. See Ranged Bar Chart in the ReadMe

@willdale  thanks for taking the time!  I will give both a shot and see what works best.  Thanks again for a great library.  🍻

Hi, Will.
I actually am experiencing an issue like this again now that I upgraded to 2.5. The same issue is NOT appearing in 2.3 (I have 2.3 with the same data on a phone and 2.5 on a simulator. The x-axis is being spaced out again and the y axis has disappeared again...

I'm working on v2.6 which overhauls all the axes labels. Hopefully this will solve a myriad of problems!
@kennedycraig, Is that using xAxisLabelsFrom: dataPoint()?

Hi, Will. No, its using .chartData(). Note that the xlabels bug only appears with a rotation modifier. Without the rotation modifier, I works as expected.
                                    xAxisLabelsFrom     : //.chartData(rotation: .degrees(90)),
                                        .chartData(),

Thanks, I'll work on a fix for an up and coming update.

@willdale revisiting this, have you given any thought to adding support for time/date plotting as is discussed above? In other words correctly plotting a chart of heart rates even though the samples non equal gaps in between (resting HR every 5 minutes vs. workout HR every second).

@gesabo if you want to stick in a pull request, I'm more than happy to review it.

@willdale I would love to if I had those chops 🤣  but I'm not even sure where to start.


Merge pull request #7 from dutta-alankar/main

Merge pull request #6 from dutta-alankar/dev

Merging


Come up with some way to display the whole picture after each milestone

User comment:
After every module or section - having a visual representation showing how everything works together to show how the App works. Maybe a step by step slide or single page view of everything.
Maybe show a diagram or something?

Is this different from the overview/review slide?

Kind of the same, or more structured, this is Zo's idea, this task is kinda very blurry.
Basically the idea is to see the whole picture after each milestone.

The whole picture as in website in its current state? So kind of related to #37 and #200?

No, like a big diargam of what someone learned

Ooo 🙀

I'll explain in person, haha

Maybe Giffy?


Expose EncoderWriter to be public

Hello, I am playing with your crate and I am trying to implement a generic wrapper function that looks like this:
fn compress<E: EncoderWriter>(data: &[u8], e: &mut E) {
    e.write(data);
    let compressed_bytes = e.finish().unwrap();

    println!("Compressed is {} bytes", compressed_bytes.len());
}

fn main() {
    // ...

    let mut e = ZlibEncoder::new(Vec::new(), Compression::Default);
    compress(buffer.as_slice(), e);
}

However I cannot import the EncoderWriter trait so I cannot make this generic function work. Maybe I am missing something.

There is no trait named EncoderWriter (either publicly or privately). It is an internal name for different structs.
https://github.com/alexcrichton/flate2-rs/blob/2b324f65d27a89ebc391aa56abfd6a6ff20ce39a/src/lib.rs#L152-L158

I see, I only looked one source file and thought that this was generic. Is there any chance for the encoders to share a common trait or something like that to allow generics and be able to easily switch between Gzip, Deflate and Zlib?

How about monkey-patching them?
use std::io::{Result, Write};

trait Flate2EncoderExt<W: Write>: Write {
    fn finish(self) -> Result<W>;
}

impl<W: Write> Flate2EncoderExt<W> for DeflateEncoder<W> {
    fn finish(self) -> Result<W> {
        self.finish()
    }
}

// and so on

Ah so currently "The Trait" intended for abstraction is Read or Write, but it doesn't cover the finish-style methods, yeah. Currently I'd prefer to avoid premature abstraction with such a trait, but if there's a solid reason for doing so I could consider adding it!

I have managed to write my microbenchmark code using this abstraction @dmizuk proposed:
extern crate byteorder;
extern crate flate2;

use std::fs::File;
use std::io::prelude::*;
use byteorder::{LittleEndian, WriteBytesExt};

use std::io::{Result, Write};

use flate2::Compression;
use flate2::write::ZlibEncoder;
use flate2::write::DeflateEncoder;
use flate2::write::GzEncoder;

#[derive(Debug)]
struct Point {
    x: i16,
    y: i16
}

type MyOrder = LittleEndian;

trait Flate2EncoderExt<W: Write>: Write {
    fn name() -> &'static str;
    fn finish(self) -> Result<W>;
}

impl<W: Write> Flate2EncoderExt<W> for DeflateEncoder<W> {
    fn name() -> &'static str {
        "deflate"
    }
    fn finish(self) -> Result<W> {
        DeflateEncoder::finish(self)
    }
}

impl<W: Write> Flate2EncoderExt<W> for ZlibEncoder<W> {
    fn name() -> &'static str {
        "zlib"
    }
    fn finish(self) -> Result<W> {
        ZlibEncoder::finish(self)
    }
}

impl<W: Write> Flate2EncoderExt<W> for GzEncoder<W> {
    fn name() -> &'static str {
        "gz"
    }
    fn finish(self) -> Result<W> {
        GzEncoder::finish(self)
    }
}

fn compress<T: Flate2EncoderExt<Vec<u8>>>(mut compressor: T, buffer: &[u8]) {
    compressor.write(buffer);
    let result = compressor.finish();
    println!("[{}] Size is {} bytes", T::name(), result.unwrap().len());
}

fn main() {
    let pt = Point { x: 42, y: 2 };
    let mut buffer = vec![];

    println!("Hello, world!");
    println!("{:?}", pt);

    for i in 0..4442 {
        buffer.write_i16::<MyOrder>(pt.x).unwrap();
        buffer.write_i16::<MyOrder>(pt.y).unwrap();
    }

    println!("Uncompressed is {} bytes", buffer.len());

    let mut deflate_compressor = DeflateEncoder::new(Vec::new(), Compression::Default);
    compress(deflate_compressor, buffer.as_slice());

    let mut zlib_compressor = ZlibEncoder::new(Vec::new(), Compression::Default);
    compress(zlib_compressor, buffer.as_slice());

    let mut gzip_compressor = GzEncoder::new(Vec::new(), Compression::Default);
    compress(gzip_compressor, buffer.as_slice())
}

Hello, world!
Point { x: 42, y: 2 }
Uncompressed is 17768 bytes
[deflate] Size is 38 bytes
[zlib] Size is 44 bytes
[gz] Size is 56 bytes

However if I want to make the main code even more readable I want to make the following changes in the trait:
trait Flate2EncoderExt<W: Write>: Write {
    fn name() -> &'static str;
    fn default() -> Flate2EncoderExt<W>;
    fn finish(self) -> Result<W>;
}

However a trait cannot return itself and is this denied by the compiler. The idea was to implement it like this:
impl<W: Write> Flate2EncoderExt<W> for DeflateEncoder<W> {
    fn name() -> &'static str {
        "deflate"
    }
    fn finish(self) -> Result<W> {
        DeflateEncoder::finish(self)
    }
    fn default() -> Flate2EncoderExt<W> {
        DeflateEncoder::new(Vec::new(), Compression::Default)
    }
}

In order to avoid to repeat code for creating each "compressor" I want to use. I think I am reaching the limit of monkey patching this.

For your example, maybe a simpler way to solve it would be to have a function that wraps the writer creation, write call (you should probably use write_all by the way, write won't write all the data if there is a lot of data), and finish call like I have in deflate. With that the compress function could take a &[u8] -> Vec<u8> function (and optionally a name string) rather than a trait as an argument.
That said a trait that could be implemented by this, and other compression formats may have uses.
(Also, not sure if this is the case here, but in case it's not clear from the documentation: Gzip and zlib are simply different wrappers for deflate-compressed data, contaning metadata and a checksum, The compressed data will be the same regardless of which of DeflateEncoder (which is just the raw compressed stream with no extra info),ZlibEncoder and GzipEncoder you use.)

I'm going to close this for now as I'd personally prefer to avoid exposing this trait, but thanks for the report!


[BUG] cmake failed to generate Makefile without librdkafka

Describe the bug
Building examples should be optional when dependencies are not met.
👍 Without gflags, the build can still proceed without producing examples as targets.
👎 But when librdkafka is not installed, cmake fails without producing a Makefile.
To Reproduce
try cmake .. without librdkafka installed.
Expected behavior

an option should be added to CMakeLists for users to configure if examples targets shall be generated
turn off the option if any of examples' dependencies were not met, and still produce the Makefile without examples

will fix along #3

Check if librdkafka exists is tricky, because librdkafka is found by cppkafka using a customized CMake module, and we have no "try-catch" build block for add_subdirectory in CMakeLists.txt.
PR #6 will fix this issue.


fork-cleaner: init at 2.3.1

Description of changes
Adds caarlos0/fork-cleaner, a tool to quickly clean up unused forks on your github account.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 303817 run on x86_64-linux 1
1 package built:

fork-cleaner

Seems to be outputting the wrong version?

Normally I get this.

Seems to be outputting the wrong version?

Resolved via a patch.

The format looks a bit weird, is it alejandra or something?

Good catch ill reformat soon.


generate system manifest

JSON representation of systems (can use abi-ts for strong types) that include system IDs and ABIs for strongly typed calls to systems (e.g. batch call)
should also prob generate interfaces to call via solidity as well

agreed! see also #2386

another related thing that would be useful here would be autogenerating the ID of systems for solidity (so we don't have to manually define things like REGISTRATION_SYSTEM_ID)

should also generate a manifest for modules and anything else deployed so we can map back to it for verification
the manifest should prob include the original bytecode, compiler options, etc. for verification

we should make sure these manifest support non-TS environments: https://github.com/latticexyz/mud/issues/2349#issuecomment-1989345314


Issues/#1689 text input warning

This should close issue 1689. Using Object.assign to pass Flow checks.

@facebook-github-bot import

I will pull this into the 0.8-stable branch to silence the warning. Thanks @admmasters!


Possibility to rename logged metrics postfix 'dataloader_idx_X' to the name of the respective dataset for multiple validation datasets

🚀 Feature

It would be nice to have a possibility to rename currently automatically set metrics postfix dataloader_idx_X to the custom name for better metrics visualization.
Say I have an imagenet and cifar datasets and accuracy metrics. Now I got accuracy_dataloader_idx_0 and
accuracy_dataloader_idx_1 metrics postfix but it would be much more convinient to have the metrics name like accuracy_imagenet and accuracy_cifar

This could at least be possible with user manual metrics name override if the auto postfix feature could be disable via flag.
Now _dataloader_idx_0 is a mandatory postfix for multiple val datasets as far as I know

Dear @Vozf,
It was in the feature roadmap.
It shouldn't be too hard. Would you like to give it a try and open a PR ?
Best,
T.C

What should be the api for that?

hi @Vozf, I have open PR #6274 which should give you the option for custom naming.
sorry if you already started working with on this, I was trying to solve #6091 which is basically the same issue as this

Hi, I've not really started as I've had no good api ideas. So no progress wasted. Thanks for the pr though


MS Learn cross-promo links

:warning: Validation status: warnings

File
Status
Preview URL
Details

azure-cli-2017-03-09-profile/TOC.json
:warning:Warning

Details

docs-ref-conceptual/index.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile)

azure-cli-2017-03-09-profile/TOC.json

[Warning] Error happen when converting azure-cli-2017-03-09-profile/TOC.json to Pdf. Details: The process cannot access the file 'W:\l0pp-o-unknown\azure-cli-docs_en-us_TOC.pdf' because it is being used by another process.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:warning: Validation status: warnings

File
Status
Preview URL
Details

azure-cli-2017-03-09-profile/TOC.json
:warning:Warning

Details

docs-ref-conceptual/index.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile)

azure-cli-2017-03-09-profile/TOC.json

[Warning] Error happen when converting azure-cli-2017-03-09-profile/TOC.json to Pdf. Details: The process cannot access the file 'W:\l3ow-o-b2dc0068\azure-cli-docs_en-us_TOC.pdf' because it is being used by another process.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

#sign-off

@arob98 @jenniehubbard can you please sign off on this PR

@mtillman @SyntaxC4 @arob98
Approved

#approve #sign-off

@SyntaxC4 Can you merge this one?


Support ChatQnA pipeline without rerank microservice

Description
Support ChatQnA pipeline without rerank microservice
Issues
n/a
Type of change
List the type of change like below. Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would break existing design and interface)
[ ] Others (enhancement, documentation, validation, etc.)

Dependencies
None
Tests
Local test

There should also has test_chatqna_without_rerank_on_xeon.sh?


File change on each generate

SVG content use random ids, making a different result for each generate.
I would like to commit this file, but currently the file change even if the schema is the same.
Would it be possible to avoid this ? To prevent unchanged generation or to use incremental ids so the results are the same ?

I've been trying to figure out what changed that for a bit. Haven't come up successful yet.

Adding my two-pence here, I've also tried looking at it a little and it might be related to how mermaid is generating the SVG IDs: https://github.com/mermaid-js/mermaid/issues/1601 💭. Do you think this could be the reason?

Sounds exactly related. We do have deterministidIds set to true in our mermaid cli config. What that did before was set all unix timestamps to an ordinal id for example mermaid-{unix timestamp} to mermaid-0 and it appears that still works but something in mermaid changed to persist a uuid to the id's further down the svg

After upgrading to v10 on the alpha release I am not getting the changes every time I run prisma generate. Give it a try and let me know if it's resolved for you all.
npm i -D prisma-erd-generator@alpha