[Impeller] Text string changes thickness/brightness when dynamically reading data stream

Is there an existing issue for this?

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

Steps to reproduce
*DEVICE: iPhone SE 2020, iOS 16.3.1
**Potentially related: https://github.com/flutter/flutter/issues/119292

Enable Impeller in Info.plist
StreamBuilder reading data from Firestore, feed into ListView that builds a Container with Text inside with unique string arguments (see video)
Scroll the ListView

(also appears to slightly dim/shrink icons as well) You can see the difference in images -- no TextStyle set but appears different when rendering const Text string vs. dynamic Text string from database
Expected results
Expect text and icons to remain consistent. This bug does not happen when Impeller is not enabled. It also does not happen when the Text's string is set to a const -- only when string is different from item to item in the ListView
Actual results
Text thickness/brightness appears to be slightly changing when rendering different Text strings per ListView item. This also applies to some Icons in which the icon appears to shrink ever so slightly
When the ListView item is given a const string argument, this bug does not occur.
Also, when rendering a const Text string, the text appears to be thinner (see images) and when rendering dynamic Text strings per ListView item from database, thickness appears thicker/brighter (see images)
Code sample
Code sample

  Widget theBug() {
    return StreamBuilder(
      stream: exploreFeedBloc.exploreStream,
      builder: (context, AsyncSnapshot snapshot) {
        if (snapshot.hasData) {
          return RefreshIndicator(
            color: Colors.white,
            backgroundColor: Theme.of(context).primaryColor,
            strokeWidth: 4.0,
            onRefresh: () async {
              //
            },
            child: ListView.builder(
              scrollDirection: Axis.vertical,
              physics: const AlwaysScrollableScrollPhysics(
                  parent: BouncingScrollPhysics()),
              controller: pageController,
              itemCount: snapshot
                  .data.length, //ten items returned in first database call
              itemBuilder: (context, i) {
                if (snapshot.data[i]['type'] == 'text') {
                  return Container(
                    width: MediaQuery.of(context).size.width * .8,
                    padding: const EdgeInsets.all(20),
                    child: Column(
                      children: [
                        Row(
                          children: [
                            Container(
                              width: 65,
                              height: 70,
                              decoration: BoxDecoration(
                                  image: DecorationImage(
                                      image: MiscProviders().renderUserImage(
                                          snapshot.data[i]['picture']))),
                            )
                          ],
                        ),
                        // const Text(
                        //     'This is set as CONST and will not blur or dim but the other text string will when you scroll gently... ')
                        Text("FROM DATABASE  " + snapshot.data[i]['text']),
                      ],
                    ),
                  );
                } else {
                  return Container(
                    color: Theme.of(context).scaffoldBackgroundColor,
                    child: Center(child: Text('Error...')),
                  );
                }
              },
            ),
          );
        } else if (snapshot.connectionState == ConnectionState.waiting) {
          return Container(
            color: Theme.of(context).scaffoldBackgroundColor,
            child: Center(
              child: Platform.isIOS
                  ? CupertinoActivityIndicator(radius: 20)
                  : CircularProgressIndicator(
                      backgroundColor: Colors.white,
                    ),
            ),
          );
        } else {
          return Center(
              child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text('No posts available...'),
              SizedBox(
                height: MediaQuery.of(context).size.height * .08,
              ),
              Icon(
                Icons.feed_rounded,
                color: Colors.white,
                size: 34,
              ),
            ],
          ));
        }
      },
    );
  }

Screenshots or Video

Screenshots / Video demonstration
https://www.veed.io/view/d93bc1f9-f14c-4938-a0c5-e485478fd679?sharingWidget=true&panel=

https://user-images.githubusercontent.com/44451477/234151482-2c3d1e4f-c3b4-4ae7-bac7-8bbada5eabac.png
https://user-images.githubusercontent.com/44451477/234151496-161a60ba-f947-4fc4-8ba8-fb86516cf363.png
Logs
Logs
flutter run

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.7.9, on macOS 13.1 22C65 darwin-x64, locale en-US)
    • Flutter version 3.7.9 on channel stable at /Users/normalsoftware/Downloads/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 62bd79521d (4 weeks ago), 2023-03-30 10:59:36 -0700
    • Engine revision ec975089ac
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.12.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).

[✓] VS Code (version 1.71.2)
    • VS Code at /Users/normalsoftware/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.1 22C65 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 112.0.5615.137

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

Thanks for the report @schnausages
Looking at the code sample provided, you seem to be using third party package implementation such as cloud_firestore. In order to narrow down the issue to framework code, please provide only minimal but complete code sample without third party package that we can directly copy paste and run to verify the reported behavior.

Sorry @darshankawar -- I tried a few different things without a third party package but cant reproduce it without cloud_firestore. I'll try my best to see what else may be causing it. All I know is that this does not happen on Skia. Also doesnt happen when ListView data is built from a const list.
Thanks for your reply anyways and I appreciate the work from the Flutter team!

Thanks for the update. I suggest you to try to latest stable or master and see if you still get same behavior or not.
If so, atleast please trim down the code sample (with cloud_firestore is fine), but I also see bloc being used in your implementation, so maybe removing it and then providing the full main.dart would be helpful to take this issue forward.

youre welcome. I did upgrade to version 3.7.12 and this bug does still occur only with Impeller (but not with Skia) AND when Firestore is provided the orderBy function to the request -- I will submit a similar bug report under flutterfire's repo since this might concern that as well. Figured this bug might be related to Impeller since it doesnt happen with Skia but if im wrong, my apologies!
Here is a video example: https://imgur.com/a/1KX6xXe
Code is below -- bug occurs when orderBy is set and the Text string being rendered uses a Firestore text field for a String, but not when Text string is constant.
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(context) {
    return MaterialApp(
      title: 'bug_test',
      debugShowCheckedModeBanner: false,
      home: TestExploreScreen(),
    );
  }
}

class TestExploreScreen extends StatefulWidget {
  @override
  _TestExploreScreenState createState() => _TestExploreScreenState();
}

class _TestExploreScreenState extends State<TestExploreScreen> {
  late Future exploreFuture;

//fetch list of docs from Firestore
  Future<List<DocumentSnapshot>> getExploreDocs() async {
    var _fs = FirebaseFirestore.instance.collection(
        'user_posts'); //name of posts collection or wherever user posts/comments are stored
    var _docs = await _fs
        .limit(10)
        .orderBy('date_added') // bug occurs when orderBy is used
        .get(GetOptions(source: Source.server));
    return _docs.docs;
  }

  @override
  void initState() {
    super.initState();
    exploreFuture = getExploreDocs();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        resizeToAvoidBottomInset: false,
        backgroundColor: Colors.black,
        body: SafeArea(
          child: Padding(
            padding:
                EdgeInsets.only(top: MediaQuery.of(context).size.height * .075),
            child: FutureBuilder(
              future: exploreFuture,
              builder: (context, AsyncSnapshot snapshot) {
                if (snapshot.connectionState == ConnectionState.done &&
                    !snapshot.hasError) {
                  return ListView.builder(
                    scrollDirection: Axis.vertical,
                    physics: const AlwaysScrollableScrollPhysics(
                        parent: BouncingScrollPhysics()),
                    itemCount: snapshot.data.length,
                    itemBuilder: (context, i) {
                      //provides widget with the message/text of post made by a user -- "snip_text" is name of my Firestore text field for posts
                      return TestBugTestPost(
                        postText: snapshot.data[i]['snip_text'],
                      );
                    },
                  );
                } else if (snapshot.connectionState ==
                    ConnectionState.waiting) {
                  return Container(
                    color: Colors.black,
                    child: Center(
                      child: CircularProgressIndicator(
                        backgroundColor: Colors.white,
                      ),
                    ),
                  );
                } else {
                  return Center(
                      child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      Text(
                        'No posts available...',
                        style: TextStyle(
                          color: Colors.white,
                          fontSize: 16,
                        ),
                      ),
                      SizedBox(
                        height: MediaQuery.of(context).size.height * .08,
                      ),
                      Icon(
                        Icons.feed_rounded,
                        color: Colors.white,
                        size: 34,
                      ),
                    ],
                  ));
                }
              },
            ),
          ),
        ));
  }
}

class TestBugTestPost extends StatefulWidget {
  final String postText;

  TestBugTestPost({Key? key, required this.postText}) : super(key: key);

  @override
  State<TestBugTestPost> createState() => _TestBugTestPostState();
}

class _TestBugTestPostState extends State<TestBugTestPost> {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: double.infinity,
      padding: const EdgeInsets.all(10),
      decoration: BoxDecoration(
          border: Border.symmetric(
              horizontal: BorderSide(color: Colors.white10, width: 1))),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          Text(
            'USERNAME_HERE123',
            style: TextStyle(color: Colors.white),
          ),
          Container(
            width: MediaQuery.of(context).size.width * .8,
            child: Text(
              //when the string is constant (Lorem Ipsum string), the text bug does NOT show up... only when using widget.postText
              // "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book",
              widget.postText,
              style: TextStyle(
                color: Colors.white,
                fontSize: 16,
              ),
            ),
          ),
        ],
      ),
    );
  }
}

Thanks for the update @schnausages
Instead of using cloud_firestore which has an external dependency (like setting up firebase project and then the db), is it possible to trim down by using http url that dynamically loads the data in ListView.builder and shows up in the list as you showed in the video ? That way it would help to narrow down the issue specifically to framework + impeller.
See this for further reference: https://docs.flutter.dev/cookbook/networking/fetch-data

thanks for your time @darshankawar  -- I'll have to do some more looking into what I'm doing on my original code.
There is no bug when just relying an http request. I'll close the issue but thank you for taking the time to reply!


The Sway Book does not contain any examples regarding std usage

Summary
Taking a look at the link to the Sway Book for the standard library there is no usage for any type and instead it points the reader directly at the master branch / latest release tag.
That is absolutely not what documentation should be doing.
It's okay to reference the library as an addition for the reader to familiarize themselves with the workings under the hood however we should not be telling the user to "just read the source code".
Every type in the standard library must have its own section which shows simple usage for various usages e.g. initialization, calling some method on the type etc.
This will reduce the questions and confusion from users because they have no reference for the correct usage of the library.
This happens too often and should be prioritized.

So the original idea here was to rely on auto-generated docs with #161, similar to how Rust docs are generated. That would avoid drift between the implementation and the documentation.
As an example, see the docs for Rust's vec (https://doc.rust-lang.org/std/vec/struct.Vec.html) auto-generated from https://doc.rust-lang.org/src/alloc/vec/mod.rs.html.
However, now that I think about this, any example code would require being able to compile and test things from docstrings, which would be a big lift. Putting things info example files included in The Book would provided us with testable code with no further work.
I would therefore be in favor of making a new section in The Book for stdlib types. The content of the section should include only examples of using the types and not documentation on individual methods to avoid duplication. Readers should be pointed to the respective source files to get documentation for methods.

Standard library docs generated using forc doc will go live soon. Really important features are finding themselves into the book/reference as needed (such as Result, Option, Vec, etc.). So I'm closing this issue for now.


flake: update to ghc 9.6

Fair warning I have not tested this over and above running the test suite for I do not have a development environment for this.
As requested by @ldub. I spent about 30 minutes looking at this and it wound up being simply easier to just do it than to describe how.

thank you @lf- for the work here, i have rolled it into #25 to go straight to ghc 9.8


Uploading xls file changes extension

Bug Report
In one of my upload types, when I upload a .xls file, it gets renamed to [filename].cfb after I save. Does not happen with .xlsx files. Seems to be renaming files based on mime-type.
Expected Behavior
I expect the file name/extension to remain the same after I save.
Current Behavior
The extension is converted to .cfb after I save.
Steps to Reproduce

Create a basic upload type. Here is mine for reference:

import { CollectionConfig } from 'payload/types';
import path from "path";

const Data: CollectionConfig = {
  slug: 'data',
  admin: {
    useAsTitle: "filename",
  },
  upload: {
    staticURL: '/data',
    staticDir: path.resolve(__dirname, '../../data'),
  },
  fields: [],
};

export default Data;

Attempt to upload any .xls file in this collection
Save the collection entry. You should now see the file has a .cfb extension.

Detailed Description

Node.js version 16.15.0
TypeScript version 4.1.3
Payload version 1.1.3
More-or-less a fresh Payload install. I have only added collections, fields, and utility functions.
My payload.config.ts:

import { buildConfig } from 'payload/config';
import path from 'path';
import Users from './collections/Users';
import Media from './collections/Media';
import CatalogEntry from './collections/CatalogEntry';
import DataSource from './collections/DataSource';
import Data from './collections/Data';

export default buildConfig({
  serverURL: 'http://localhost:3000',
  admin: {
    user: Users.slug,
  },
  collections: [
    Users,
    Media,
    Data,
    CatalogEntry,
    DataSource,
  ],
  typescript: {
    outputFile: path.resolve(__dirname, 'payload-types.ts'),
  },
  graphQL: {
    schemaOutputFile: path.resolve(__dirname, 'generated-schema.graphql'),
  },
});

I think we are dependent on the library file-type to detect a file's extension from looking at the buffer.
It seems they don't plan on supporting old types including .xls mentioned here.
This issue in file-type github might be interesting.

Good digging @ahmedHusseinF, you are correct.
The intention of our upload code was to fallback to preserving the file extension from the uploaded when the mime-type could not be detected from this package. That is what this line of code was meant to do:
https://github.com/payloadcms/payload/blob/051a0fad84df6c624745465a35a4af6f53759a23/src/uploads/uploadFile.ts#L81
Unfortunately it must be that the library is giving back the ext cfb. Based on their readme I had assumed this would return undefined instead. This is working for svg files, so I'm unsure why that library is returning cfb in this case.
Some ideas on how to fix this are:

Skip the file extension change and simply preserve the extension as it was when uploaded. That solves this problem, but wouldn't help in the case of having incorrect mimetypes.
Maintain a blacklist of extensions that this library doesn't work with and bypass only those few.

Hey @ahmedHusseinF and @TimLanzi — this is now closed and will be released in our next minor version, coming shortly!


add missing step to docs

Hey, I just made a Pull Request!
Add missing step to the scaffolder v2 -> v3 migration docs.
I had an issue with the migration based on the docs and got pointed out in this discord thread that I'll need to do one additional step.
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thanks for this! Just need to run prettier on the file changed.
[warn] docs/features/software-templates/migrating-from-v1beta2-to-v1beta3.md
[warn] Code style issues found in the above file(s). Forgot to run Prettier?


Add CONTRIBUTING.md and k8s PR template

We now use the Kubernetes PR template to better integrate with prow. This links to a CONTRIBUTING.md, which is now also part of this repository.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 70.71%. Comparing base (57570dd) to head (d2aabc7).
Report is 43 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #228       +/-   ##
===========================================
+ Coverage   26.61%   70.71%   +44.10%
===========================================
  Files          24       26        +2
  Lines        2788     3159      +371
  Branches     1516     1679      +163
===========================================
+ Hits          742     2234     +1492
+ Misses        948      925       -23
+ Partials     1098        0     -1098


Connect DevOps pipeline to GitHub repository

As a developer
I need to connect the DevOps pipeline to the GitHub repository
So that I can access it in Github
Assumptions:
We are using Github
Acceptance Criteria
Given the DevOps pipeline is connected to the GitHub repository
When accessing Github
Then I see he DevOps pipeline

Comment from HW 4: Your Pipeline must have 4 stages: Build, Deploy to Dev, Integration Test, Deploy to Prod


[BUG] training pods scheduler name overidden by default-scheduler

Test training workloads with - --gang-scheduler-name=kube-coscheduler
# test yaml
apiVersion: training.kubedl.io/v1alpha1
kind: "TFJob"
metadata:
  name: "mnist"
  namespace: kubedl
spec:
  cleanPodPolicy: None
  tfReplicaSpecs:
    Worker:
      replicas: 3
      restartPolicy: Never
      template:
        spec:
          schedulerName: scheduler-plugins-scheduler
          containers:
            - name: tensorflow
              image: kubedl/tf-mnist-with-summaries:1.0
              imagePullPolicy: IfNotPresent
              command:
                - "python"
                - "/var/tf_mnist/mnist_with_summaries.py"
                - "--log_dir=/train/logs"
                - "--learning_rate=0.01"
                - "--batch_size=150"
              volumeMounts:
                - mountPath: "/train"
                  name: "training"
              resources:
                limits:
                  cpu: 2048m
                  memory: 2Gi
                requests:
                  cpu: 1024m
                  memory: 1Gi
          volumes:
            - name: "training"
              hostPath:
                path: /tmp/data
                type: DirectoryOrCreate

the scheduler name of the pods created is always default-scheduler which is not quite flexible

@shinytang6 I see, for now, the schedulerName will be override inside kube-coscheduler implementation though it is specified by user, override schedulerName only when it is empty seems more reasonable, furthermore, we'd decouple gang-scheduler-name and scheduler-name-to-set concepts that both of them can be set separately.

@shinytang6 hi, I find that schedulerName will only be override when it is empty in latest code, did you deploy a not-update-to-date kubedl version?
https://github.com/kubedl-io/kubedl/blob/master/pkg/job_controller/pod.go#L472

@shinytang6 hi, I find that schedulerName will only be override when it is empty in latest code, did you deploy a not-update-to-date kubedl version? https://github.com/kubedl-io/kubedl/blob/master/pkg/job_controller/pod.go#L472

yes, l also noticed that. l am using docker.io/kubedl/kubedl:0.4.2, seems the latest changing commit is not included
https://github.com/kubedl-io/kubedl/commit/7c2c96915d9cd20a26c981afe8330acf7b9e3822#diff-f1298812d743ef9536ccc3a415a283c84baa3ecf38e0c7993b6296fa1f2d3debR474

@shinytang6 hi, I find that schedulerName will only be override when it is empty in latest code, did you deploy a not-update-to-date kubedl version? https://github.com/kubedl-io/kubedl/blob/master/pkg/job_controller/pod.go#L472

yes, l also noticed that. l am using docker.io/kubedl/kubedl:0.4.2, seems the latest changing commit is not included
7c2c969#diff-f1298812d743ef9536ccc3a415a283c84baa3ecf38e0c7993b6296fa1f2d3debR474

I see, I will release a new image soon, including bugfix and some enhancements recently.

Close since this issue has been fixed in master branch


Add Examples

The PR #75  is a good template for writing document. Doc-string format seems to be better than creating examples/ directory unless execute it for other objective.

This is already resolved partially, and there is no clear goal.


Reverse direction of prerequisite tree

Also,

Coordinate with PeterPortal to maintain consistency
Change the phrasing of the words on the graph edges to make sure they still make sense

and/or, add arrows to the graph edges to make it clear
This was requested on the feedback form

Coordinate with PeterPortal to maintain consistency

Projects component library????? :eyes: :eyes: :eyes:

Closing as duplicate of #613 🤦♂

Not Planned


[Question]: Copy Code seems to be broken

Contact Details
No response
What is your question?
Copy Code button seems to be broken, as it is not copying any code from the code snippet.
More Details
Copy Code button seems to be broken, as it is not copying any code from the code snippet box. It errors out like this:
CodeBlock.tsx:25 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'writeText')
at onClick (CodeBlock.tsx:25:35)
at Object.IQ (vendor-c916abd2.js:37:9864)
at FQ (vendor-c916abd2.js:37:10018)
at kQ (vendor-c916abd2.js:37:10075)
at n6 (vendor-c916abd2.js:37:31482)
at bx (vendor-c916abd2.js:37:31899)
at vendor-c916abd2.js:37:36812
at ZE (vendor-c916abd2.js:40:36956)
at V_ (vendor-c916abd2.js:37:8999)
at f5 (vendor-c916abd2.js:37:33186)
I remember this was working earlier. The docker image was built yesterday fresh from git clone.
Also, I tried the "copy to clipboard" for AI chat response and that is working fine without any issues.
What is the main subject of your question?
UI
Screenshots
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I can't reproduce it, I'll look into it further

what browser are you on?


Subevents do not work

I hate them

Subevents work now, but cannot be managed by the master list; this will be very difficult to fix without completely rewriting how the master list works


(WIP) Detox init timeout with Android API 32

What happened?
A follow-up on the discussions in #3342.
It seems that there are issues with API 32. Most likely, 33 has those as well. We need to check.
What was the expected behaviour?
API 32 should work just as 28 and 29 do.
Was it tested on latest Detox?

[X] I have tested this issue on the latest Detox release and it still reproduces.

Did your test throw out a timeout?

[ ] I have followed the instructions under Identifying which synchronization mechanism causes us to wait too much.

Help us reproduce this issue!
No response
In what environment did this happen?
Detox version:
React Native version:
Node version:
Device model:
Android version:
Test-runner (select one): jest-circus / jest+jasmine / mocha / other
Detox logs
Detox logs
paste logs here!

Device logs
Device logs
paste logs here!

More data, please!
No response

@d4vidi I have similar problems than described in https://github.com/wix/Detox/issues/3071 with android-31, android-32 and android-33 (android-30 works fine). Detox version is 19.7.1. In #3071 it is mentioned "If the emulator is already up and running when starting detox, tests are executed as expected.". Is it documented somewhere how to start emulator first and only after this Detox? When I try this I get "Running multiple emulators with the same AVD". I have stackoverflow question about it, without no reply. I would appreciate if someone from Detox team would reply to that? https://stackoverflow.com/questions/73319635/how-to-configure-detox-to-be-able-to-use-android-emulator-running-already

@jaheikki you might like this:
https://github.com/ankidroid/Anki-Android/blob/58341e381a5773dd86744fa2d549ffa4da226b50/.github/workflows/tests_emulator.yml#L80-L148

caches / handles caching for emulator snapshots
handles "no cache" / cold boot case by starting + warming up the emulator + then taking snapshot if needed
starts emulator from snapshot (which is now guaranteed to exist)
runs your thing (could be detox)

That's a pure Android project but we have run  that workflow 11,399 times at last count (!) and it's mostly non-flaky / as fast as I know how to make it. It is not android 31/32/33 but the strategy should be sound, for starting up an emulator and having it be high-performance for use (because of the warmup) in the normal case.

I'll note that if you chose the ATD device types it should be that much faster, I haven't experimented with them much as they don't support firebase dynamic links and that's a requirement of mine so they are not as interesting to me. Possibly also of interest if people are testing these things - a gist that lays out an emulator performance testing framework, and has the results from last time I ran it, attempting to determine what was flaky what was not, what was fast, what was not https://gist.github.com/mikehardy/f076172f3b28826898c55dc03fe202de

@d4vidi @mikehardy I was able to use work around for using Android API 31 and above with Detox. So making emulator running before  Detox  as described in #3071 (see my update on https://stackoverflow.com/questions/73319635/how-to-configure-detox-to-be-able-to-use-android-emulator-running-already). But it requires also the 'adb reverse tcp:8081 tcp:8081' to hit the bundler as described in #2899. Is this the best work around for the #3560 at the moment? Of cource I would prefer getting official fix for this issue if it is released in near future?

I frequently need to do adb reverse without detox these days. Why? Unknown, but easy to script. I no longer carry any patches for detox vs official release personally

The problem is being investigated in https://github.com/wix/Detox/issues/3636


How to install KiVar from actual repository state

How should I install KiVar, if I want to try the newest development version (actual state of the main branch)? There are only instructions for PCM and for manual instalation from the release zip archive in the readme.md.

There is a simple release shell script that takes care of generating

a KiVar CLI app Python package,
a KiVar Action Plugin PCM package,
a "classic" Action Plugin ZIP archive.

For Ubuntu (actually, any Linux distro in general, or WSL):
Download the repo (clone or get a ZIP archive), go to the source folder, run ./release.sh 0.1.9001 (0.1.9001 being some "close to 0.2.0" version number ... we can only use major.minor.micro scheme).
If it succeeded, you'll find three files in the ../release/0.1.9001 folder:

The package with pcm in its name is an Action Plugin PCM package, that can be installed with the "Install from file..." option in the KiCad PCM.

The .tar.gz file is a Python package containing the kivar CLI app, to be installed with pip install <package_file>.

The other .zip (without pcm) is the "classic" archive containing the Action Plugin, to be extracted into your KiCad plugins directory.

If you fail to create/install the packages on your system (the release script is quite simple and does not yet contain proper error handling), just give me a ping. I already thought about creating a pre-release here on GitHub, so that everyone can give it a try, even before I found the time to complete the documentation.

I tested the results of the release.sh script with following results:

classic action plugin zip archive: does not work - after copying content of the zip into the plugins directory and refreshing the plugins, the KiVar does not show among other external plugins installed in kicad. I guess there is some problem with file naming, but I have not been able to solve it myself. Please take it as note, that actual state of the source does not match the actual state of the documentation. According the other opened issues I understood, you are working on it already :-)
PCM package: working correctly (open PCM, use install from file ...)
python package: working. I was able to install it in Kicad command prompt (I am running Kicad on windoew 11) by command python -m pip install ./kivar-0.999.tar.gz and then rin it just by typing kivar

Thanks for reporting.  I would classify PCM and pip the "critical" parts.  Good to hear that they are working for you, even on a different platform than I use (native Ubuntu 22.04).
I'll have a look at the ZIP file when I find the time.

Oh, and there actually is a small plugin debugging aid in KiCad:
In the pcbnew preferences dialog, in the Action Plugin section, check if there is a warning icon next to the sorting and file browser icons below the plugin list.  If so, click on it to see what prevented the plugin(s) from loading (stack trace).

The classic ZIP should be fixed now. Please test the PCM and Plugin ZIP again (they share code).
Ref: 2cc1a684bb4931d46281c40d0dd58195dd524857

Fix is working, I was able to install all 3 outputs of the release script and start kivar. It reports version 0.2.0-dev32. Tested with latest main (18442f3) on win11 and kicad 8.0.2


fluent-plugin-gelf-hs do not add milliseconds to time.

Fluentd version: 0.12.33
fluent-plugin-gelf-hs version: 1.0.8
Configuration

<source>
  @type tail
  path /var/log/containers/*.log
  pos_file /var/log/es-containers.log.pos
  time_format %Y-%m-%dT%H:%M:%S
  tag docker.*
  format json
  keep_time_key true
  read_from_head true
  exclude_path []
  read_lines_limit 500
</source>

<match docker.**>
  @type copy_ex
  <store ignore_error>
    @type gelf
    host <graylog_host>
    port <graylog_port>
    protocol tcp
    add_msec_time true
    flush_interval 5s
  </store>
</match>

Problem explanation:
Plugin do not add milliseconds to time.
In the Graylog I get logs with time 2019-05-27T22:16:21.000Z

Because you use Fluentd v0.12:
https://github.com/bodhi-space/fluent-plugin-gelf-hs/blob/master/lib/fluent/plugin/out_gelf.rb#L65
But this issue doesn't follow the contribution guideline.
This issue is fluent-plugin-gelf-hs' issue not Fluentd core's.
So, closing this issue.

@cosmo0920, is there an opportunity to support Fluentd v0.12?
In the 'fluent-plugin-gelf-hs' repository it is impossible to create a new issue.
Please tell me how to solve this problem using Fluentd v0.12.

There is no solution for v0.12 with fluent-plugin-gelf-hs itself.
Because Fluentd v0.12's events don't have milliseconds precision in timestamp.
Thanks.

Thanks a lot.


Name must match the class name

What is the purpose of collection name having to match the class name?
Right now I'm going around this like this:
class AB.Translation extends AT.RemoteDocument
  @Meta
    abstract: true

and
  class ArtificialBabelTranslation extends AB.Translation
    @Meta
      name: 'ArtificialBabelTranslation'

  AB.Translation = ArtificialBabelTranslation

Am I going to run into trouble because of this? And if no, why do I have to jump through hoops in the first place?

I just noticed I also used another (better) strategy somewhere else in the code. Posting it in case someone searches for this issue.
So the point of doing this is that I want to access a document on some namespace (dummy) class, but have the document name reflect the namespace as well (so it doesn't clash in the database).
Here I went about it like this:
class PixelDailiesTheme extends Document
  @Meta
    name: 'PixelDailiesTheme'

PixelArtAcademy.PixelDailies.Theme = PixelDailiesTheme

Much cleaner. I guess the ideal would still be:
class PixelArtAcademy.PixelDailies.Theme extends Document
  @Meta
    name: 'PixelDailiesTheme'

What is the purpose of collection name having to match the class name?

I think this is some bad try at more strict-typing in PeerDB.
I think one alternative could also be:
class PixelArtAcademy.PixelDailies.Theme extends Document
  @Meta
    name: 'Theme'
    collection: new Mongo.Collection 'PixelArtAcademy.PixelDailies.Themes'

(As it turns out, I just found out that I wrote the first solution (first post) that way because of some other reason—I didn't want the collection to be created at that point.)
Well, as long as nothing will break using my workaround, all is good.


Extension issue

Issue Type: Bug
Extension Name: git
Extension Version: 1.0.0
OS Version: Windows_NT x64 10.0.19042
VSCode version: 1.53.2

:warning: We have written the needed data into your clipboard. Please paste! :warning:

Please describe the bug.


Tray icon of some programs (like Process Lasso) have no response clicking.

Describe the bug
The tray icon of some programs would show properly, but there's no response clicking them.
Currently I found 2 programs that have such issue:
Process Lasso, QQ (NTQQ)
Steps to reproduce

Launch programs that has problem.
Launch Cairo

Expected behavior
All function of the tray icon of the program should work properly, like what will happen when left/right click.
System information:

Windows version: Windows 11 23H2
Cairo version: 0.4.317.3477
32-bit or 64-bit: 64-bit
In Cairo Settings > Advanced, is Cairo set as shell?: No

Additional context
Screenshots

I just installed Process Lasso and it seems to be responding to clicks (left click opens the main window; right click opens the menu). I tried both with launching it before or after Cairo, but both scenarios seem to work here.

Wow, restarting the program solves the problem...


After helm delete vsecm workloads that are bound to SPIFFE CSI driver canot be deleted.

When you directly execute helm delete vsecm; VSecm Safe’s pod remains in pending state, and could not be deleted.
Sometimes, even doing a --force delete fails to remove the resource (tested on EKS).
The root cause of this is that the workload requires the SPIFFE CSI Driver to exist to delete itself; however, helm deletes spire-system first, and therefore by the time the workload looks for the SPIFFE CSI driver, the driver is long gone.
This make helm-delete target (and the script that associates it) is a temporary solution to this:
https://github.com/vmware-tanzu/secrets-manager/blob/main/makefiles/VSecMHelmUtils.mk#L29
But ideally, it should better be run on a pre-delete helm hook.
Note:
Once we fix this (with hooks, or something else), we need to update the relevant docs
in the installation page too.

Not urgent since we have a workaround (and also documented the workaround in the README.
However, it’s mildly annoying for the end-user.

Closing this as we have a documented workaround, and the fix is either not feasible or will be tricky.

If we find a simpler solution, we can amend a fix.


Parameter 'lineOffset': offset line to the left or right.

This parameter offsets a line to the left or the right.

After I pushed the pull request, I noticed that there's already a similar pull request: #57.
Pull request #57 solves this problem quite differently, it will first offset the line and then calculate the position, whereas my pull request calculates the positions and then offsets the symbols. You can notice the difference with these screenshots:
With lineOffset -15 (blue) resp. 15 (red):

With symbolOffset -15 (blue) resp. 15 (red):

I think both variants are interesting. I would exchange the parameter names though, because in my pull request the symbols are offset (so symbolOffset would make sense) and in #57 the lines are offset (lineOffset). What do you think?


Add list-ops exercise

I'm unsure about adding large list tests, as elm doesn't have TCO, and it isn't really elm's intention to do large computations. Thoughts?

This is great! My only hesitation about just merging is this issue: https://github.com/exercism/x-common/issues/129
Accumulate and strain both kind of duplicate a subset of this test, and it looks like a rename from list-ops to sequence-ops is on the table. I think we can probably merge anyway, but I'd like let it sit for a day or so.

Thanks! No problem. I don't really understand the exact relationship of the same exercise across languages, so I defer to you and others on this decision.

Problem descriptions / metadata are language-independent. Then any of the languages on Exercism can add their own implementation (test suite + reference solution). The README for the exercise is a combination of language-independent data and language/implementation specific hints.

Thanks @jcshih 🎉


mz_to_sqlite needs a conda package

Conda package needed :)
https://github.com/galaxyproteomics/tools-galaxyp/blob/master/tools/mz_to_sqlite/mz_to_sqlite.xml

I am interested in working on the issue. How do I start?

I will be in the office in 2h. I could give you a short conda introduction :-)
In the meantime just have a look into the bioconda-recipe  repository. We need to create such a meta.yaml file.

@souravsingh at first please install Miniconda: http://conda.pydata.org/miniconda.html
Than to a conda install conda-build.
Have a look at https://github.com/bioconda/bioconda-recipes/blob/master/recipes/peptide-shaker/meta.yaml this is also a Java tool and I think its a good idea to just adopt it.
Once adopted you can build it with conda build ./path/to/your/meta.yml (you also need this build.sh and the other py file.)
Let me know if you are available in gitter.

@bgruening We have a bioconda recipe for mz_to_sqlite. Do we need to update anything here?

Sorry on my phone. We need to remove this tool from the tt_blacklist and adjust the requirements tag inside the XML to fit the conda package. Also please make sure the Galaxy tool has a test included.


Feat/card component

Description
Implementation of an easy-to-use card with minimal API and one variant; Primary.
Related Issue(s)

#73

Verification

[x] Your code builds clean without any errors or warnings
[x] Manual testing done (required)
[x] Relevant automated test added (if you find this hard, leave it and we'll help out)
[x] All tests run green

Documentation

[ ] User documentation is updated with a separate linked PR in altinn-studio-docs. (if applicable)

Codecov Report

Merging #82 (245f802) into main (2afb824) will increase coverage by 0.97%.
The diff coverage is 96.96%.

@@            Coverage Diff             @@
##             main      #82      +/-   ##
==========================================
+ Coverage   96.77%   97.74%   +0.97%
==========================================
  Files           8       15       +7
  Lines         124      222      +98
  Branches       33       58      +25
==========================================
+ Hits          120      217      +97
- Misses          4        5       +1

Impacted Files
Coverage Δ

src/components/Accordion/Context.ts
85.71% <85.71%> (ø)

src/components/Accordion/Accordion.tsx
100.00% <100.00%> (ø)

src/components/Accordion/AccordionContent.tsx
100.00% <100.00%> (ø)

src/components/Accordion/AccordionHeader.tsx
100.00% <100.00%> (ø)

src/components/TextField/utils.ts
100.00% <0.00%> (ø)

src/components/TextField/Icon.tsx
100.00% <0.00%> (ø)

src/components/TextField/TextField.tsx
100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Save game

Currently, as a sample, the game data is stored in a text file. This file is easy to manipulate and leads to unfair gameplay. A new implementation (and a new format probably) of the saved file would be much required.

I'd like to work on this. But I wonder how a "manipulation free" savefile would look like.
As everything in on the client, even if we would store it binary, it could be modified.
My idea would be to encrypt it, but everyone who reads the source code would know how to decrypt ;-)

Your suggestion sounds good!!
I dunno if the general public would be getting the main application though. This project was mostly a tribute project and I want it to function properly, in all aspects.
If you're able to come up with a good enough encryption algorithm, you're more than welcome to work on this issue!

Created PR ;-)


Refine emotes

Additions/modifications proposed in this pull request:

Give emotes their own private function so as to avoid cluttering on_console_command.
Add in braces to "Snowflakes" else if statement, since it is more than one line.

I implemented your suggestion to use QStringLists.


Snake game in Java language required

Snake game implementation in Java language is required. Just make a new folder named Java and put your code there. Remember to add README.md in that folder describing how to compile and run the code.

Hey, I would like to work on this. Can you assign it to me?

Yes, sure! Assigned to you @bislara

Hey is it still open? @sohan-k  @bislara

No I am working on it. I will create PR soon

@dhrubajyoti89 I guess you can take this up. @sohan-k please unassign me.
I am kind of stuck with something else.

Ok


Is there a way to disable cool-select on mobile?

This is a great component, thanks.
Is there a way to disable the cool-select on mobile? So that a dropdown reverts to default mobile behavior, rather than the cool-select component.

This is a great component, thanks.

Thank you, I saw you once gave a star, very nice.
I think this is beyond the scope of this component, it needs to be done manually in your project. I would suggest to make a universal component BaseSelect (you can call it as stated in the best practices), which would work as cool-select everywhere except for mobile devices.
You can use transparent wrapperr pattern, this is a very popular pattern in Vue.
I have prepared a DEMO for you. I showed the idea how to do it.
I hope I helped you, write if you have any more questions.

Thank you!


[Bug][front end] Select the dag connection to pop up the label edit box

Describe the bug
Normally select the dag connection, the label edit box should not pop up
Which version of Dolphin Scheduler:
-[1.3.2-release]

already fixed

already fixed


a question regarding your code

Hi, I am a senior student major in physics. I was trying to reproduce your codes with my understanding. I found a part a little bit confusing. When you prepare then measure function, may I ask why there is a 2**(l-n-1)) dimension sparse matrix performed?
Thank you in advance for your kind response!
           up=sparse.kron(sparse.identity(2**n),sz)             up=sparse.kron(up,sparse.identity(2**(l-n-1)))             up=0.5*(up+sparse.identity(2**l))

hi @Diyorazh, the measurement is a projective matrix which takes the form $1/2(s_z+I)$
And s_z here should be understood as the spin-z operator acting on the total many-body Hilbert space with dimension 2**l, and n denotes the position to perform the measurement.
The measurement does nothing on the rest of the system, hence the identity matrix anywhere else.
A bit of caution: this measurement method is straightforward but very slow numerically, you should check measure(wave, prob, pos, l) if you want to simulate larger systems.
Hope this clarifies :)

Hi, I am sorry I was still a little bit confused on the "1" in the second line. Would you like to illustrate a little bit more? Thank you!

hi @Diyorazh it's the identity matrix in this Hilbert space.


Hydration logic fails when no ID is provided

Affected Version
4.7
Description
The new logic that was introduced by https://github.com/silverstripe/silverstripe-framework/pull/8591 doesn't take into account the scenario where you need to hydrate a DataObject for which you don't have an ID yet.
Came across this specifically while calling DataObject::newClassInstance on a unsaved record. This trigered an error because my DataObject didn't have an ID yet.
Notes

The 4.7 change logs reference this new API, so we'll need to add reference to this specific use case as well

Pull request

[ ] https://github.com/silverstripe/silverstripe-framework/pull/9767

@sminnee and I already had a chat about this:

I think root cause may be that you’ve patched newClassInstance inappropriately. It shouldn’t be passing hydrate by default...  think that’s effectively a 4th case that I hadn’t considered. :-/
Hydrating without an ID is okay. Alternatively we could add a 4th option for this case to avoid accidental hydration without ID from other cases.
the reason I did the tri-state was to avoid code that “accidentally works” and instead have clearer semantics about what the DataObject contructor expects to receive.
What we’re taking about here is effectively “hydration from memory” rather than “hydration from database”.
I’d probably do it as a 4th option for the 2nd arg unless there’s a good reason not to.
It means that if there’s a bug in the future specific to hydration from memory, we’re able to fix it without tying ourselves in knots. I can’t think of a reason right now (other than the presence of ID) but it doesn’t hurt much to add the option.
A 4th state also lets us handle the “_lazy” metadata properly.
One of the things: I think it's important that we describe what the 4th option is for, so people can distinguish bugs from designed behaviour in the future. I'd probably frame it as:

HYDRATE: Recreate a DataObject from its database record, returned from the database backend as a map. It must have an ID.
HYDRATE_MEMORY: Recreate a DataObject from its in-memory record (the result of DataObject::toMap()? be clear about where the source comes from.). Useful for clone-like operations such as DataObject::newClassInstance(). Doesn't require an ID.
But this can be probably be refined so it's clear to other people too.

Linked PR has been merged

Linked PR has been merged


In source builds fail too late.

Running cmake in the source directory corrupts the whole directory and requires a fresh checkout (or advanced knowledge of how to clean up stale files).
This occurs because a dependency doesn't support in source builds.  If the root cmake failed when it detected in source builds then we would never get the cdt into this bad state.

Fixed by #526


[Filestore] Don't write the aligned part of a large unaligned WriteData request to FreshBlocks

Suppose we have a filesystem with BlockSize=8KiB. Suppose we have a client who writes data in 1MiB requests but those requests are aligned on a 4KiB boundary. Then all this data will be written via the FreshBlocks table which is extremely inefficient. See https://github.com/ydb-platform/nbs/blob/d15214d3f3ca60a7cfe7068d395acb5af585aefe/cloud/filestore/libs/storage/tablet/tablet_tx.h#L1223
// the same logic is also present in the ThreeStageWrite feature: https://github.com/ydb-platform/nbs/blob/d15214d3f3ca60a7cfe7068d395acb5af585aefe/cloud/filestore/libs/storage/service/service_actor_writedata.cpp#L417
The proper way to process large unaligned writes is:

Write the aligned part via a WriteBlob request
Write the unaligned part in the AddBlob tx (or AddData tx for ThreeStageWrite)

Implemented here https://github.com/ydb-platform/nbs/issues/1673 for ThreeStageWrite


Readme tweaks

Rework the ASCII tree representing the conventional directory structure to use unicode characters.
https://github.com/hashar/rspec-puppet/tree/readme-tweaks#naming-conventions
Rewrite paragraph of "Configure manifests". Make example code smaller and easier to understand.
https://github.com/hashar/rspec-puppet/tree/readme-tweaks#configure-manifests-for-puppet-4

Coverage remained the same at 91.613% when pulling 0d2f3cdaf0fd3ec8a319a5875eb842eac8a15b13 on hashar:readme-tweaks into 938ba53803be3b646eee9e8426c694980fdbfc01 on rodjek:master.

Thank you :-}


Arrays in verifyProof() function are set to calldata

Describe the feature
When generating verifier contract, proof variables type is set to "calldata". It is not very convenient when you try to inherit verifier.sol, instead of using it as standalone contract, because public parts of a proof could be constructed during the transaction execution in the memory.
It would be nice to have memory type as default or some option to choose between both types.

Thanks! Will include that in our features list.


Port added to Domain

Description
I use the middleware with domain-based routing and have the problem that the port is appended to the domain on my server when the domain is entered without a prefix.
For example:
frontend.domain.com => frontend.domain.com:3000/en
frontend.domain.ca => frontend.domain.ca:3000/fr
I use Caddy as a reverse proxy. If I enter the entire address including the language prefix (e.g. frontend.domain.com/en) it works without any problems and the port is not appended.
Mandatory reproduction URL (CodeSandbox or GitHub repository)
NA
Reproduction description
Next.js 14.0.3, next-intl 3.0
Domain Config:
const domains = [
  {
    id: 1,
    domain: 'frontend.domain.de',
    marketCode: 'de',
    defaultLocale: 'de',
    countryName: 'Germany',
    locales: ['de'],
    showInSelector: false
  },
  {
    id: 2,
    domain: 'frontend.domain.com',
    marketCode: 'en',
    defaultLocale: 'en',
    countryName: 'US',
    locales: ['en'],
    showInSelector: true
  },
  {
    id: 3,
    domain: 'frontend.domain.ca',
    marketCode: 'ca',
    defaultLocale: 'ca',
    countryName: 'Canada',
    locales: ['en', 'fr'],
    showInSelector: true
  }
]

Middleware:
import createIntlMiddleware from 'next-intl/middleware'
import { locales } from '@/translations/locales'
import { domains } from '@/translations/domains'

export default async function middleware(request) {
  const handleI18nRouting = createIntlMiddleware({
    locales: locales,
    defaultLocale: 'de',
    domains: domains,
    localePrefix: 'always'
  })
  const response = handleI18nRouting(request)

  return response
}

export const config = {
  matcher: ['/', '/(de|en|ru|nl|fr|pl)/:path*']
}

Caddyfile:
{
    email<EMAIL_ADDRESS>}
frontend.domain.de {
    encode zstd gzip
    reverse_proxy frontend:3000

    header {
        Strict-Transport-Security max-age=31536000;
        X-Content-Type-Options nosniff
        X-Frame-Options DENY
        Referrer-Policy no-referrer-when-downgrade
    }
}
frontend.domain.com {
    encode zstd gzip
    reverse_proxy frontend:3000

    header {
        Strict-Transport-Security max-age=31536000;
        X-Content-Type-Options nosniff
        X-Frame-Options DENY
        Referrer-Policy no-referrer-when-downgrade
    }
}
frontend.domain.ca {
    encode zstd gzip
    reverse_proxy frontend:3000

    header {
        Strict-Transport-Security max-age=31536000;
        X-Content-Type-Options nosniff
        X-Frame-Options DENY
        Referrer-Policy no-referrer-when-downgrade
    }
}

Expected behaviour
The port will not be appended to the domain if I enter the domain without language prefix.

I unfortunately don't have any experience with Caddy. To look into this, it would be required that a reproduction is available that demonstrates incorrect behavior on the next-intl side.
We have quite an extensive test suite for the middleware. If you have a special use case, you can try to add a test there to see if the bug is caused by next-intl.

This is happening to us using Docker Compose and using domains like es.midomain.com > mx.mydomain.com

I'm also getting this issue, v3.1.3, not using anything fancy like Docker Compose or Caddy.
The port is being appended at some point in the domain-based redirect

This is happening to us using Docker Compose and using domains like es.midomain.com > mx.mydomain.com To fix it temporarly we had to change the headers location in middleware

Do you have any example code how you did that @7thkey? Would be great, thank you!

Nice!
In case it's still helpful, I was setting up a reproduction:

EN URL
CY URL

It's a bit awkward to reproduce as it needs two domains, but you can see the port there in the console-logged middleware response when going cy -> en.

Was it fixed? I keep getting port added after upgrading next-intl package

@Quackzoer Can you open a new issue with a reproduction and more details about your setup?

@amannn unfortunately the fix ...
https://github.com/amannn/next-intl/blob/553b8f49e21bc0aeffd045ce6d8920c5f9680f0b/packages/next-intl/src/middleware/middleware.tsx#L97-L104
... breaks domain-based routing when Next.js isn't running on standard HTTP/HTTPS port, and isn't behind a proxy.
For instance, when running a dev server (port 3000 by default, but could be anything), http://us-yourcompany-dev.localhost:3000/en-US/foobar will be redirected to 💥 http://us-yourcompany-dev.localhost/foobar 💥 when localePrefix: 'as-needed'. Whenever redirectDomain has a truthy value, the port will always be excluded. That works fine for the reported proxy issues and most website deployments, but not for deliberate use of alternative ports.
This one test:
https://github.com/amannn/next-intl/blob/59cd8dc440ba8f46d4ef6863274c97d757f35f2d/packages/next-intl/test/middleware/middleware.test.tsx#L2454-L2466
... would benefit from another to ensure that, in the absence of x-forwarded-host,[^1] Next.js' port is preserved:
it('uses the correct port and protocol', () => {
  middleware(
    createMockRequest('/', 'fr', 'http://<IP_ADDRESS>:3000')
  );
  expect(MockedNextResponse.next).not.toHaveBeenCalled();
  expect(MockedNextResponse.rewrite).not.toHaveBeenCalled();
  expect(MockedNextResponse.redirect.mock.calls[0][0].toString()).toBe(
    'http://<IP_ADDRESS>:3000/fr'
  );
});

[^1]: Regarding x-forwarded-* headers, there's no standard for communicating the forwarding proxy's port: some append it to x-forwarded-host, others set a separate x-forwarded-port header. The forwarded header offers a standard (RFC-7239) way to include additional details like the port.

@awkaiser-tr Thanks for digging into this and proposing a solution! I agree that it might be reasonable to assume that if there are no x-forwarded-* headers, then Next.js isn't running behind a reverse proxy. Would you be interested in adding a PR with your test and a proposed fix?

@amannn sure! 🍻

@pepijn-vanvlaanderen there are multiple patches related to this issue, can you be specific:

What version of next-intl are you using?
What issues are you experiencing? What would the simplest reproduction steps be?

this is not fixed for me 😭

@martijnmichel You might want to make sure your reverse proxy is configured correctly (see above). If next-intl still doesn't behave correctly, please open a new issue with a clear description and reproduction.


session_transaction fails because it's calling _update_cookies_from_response with missing arg headers

I'm re-creating the bug using flask and pytest.
tests/test_session_tx.py
import flask

def test_session_tx():
    app = flask.Flask("test")
    app.config["SECRET_KEY"] = "foo"
    client = app.test_client()
    with client.session_transaction() as session:
        session["bar"] = "baz"

install flask, pytest: pip install flask==2.2.4 pytest
run pytest tests/test_session_tx.py

        if hasattr(self, "_update_cookies_from_response"):
>           self._update_cookies_from_response(
                ctx.request.host.partition(":")[0], resp.headers.getlist("Set-Cookie")
            )
E           TypeError: Client._update_cookies_from_response() missing 1 required positional argument: 'headers'

venv/lib/python3.11/site-packages/flask/testing.py:171: TypeError

Environment:

Python version: 3.11.2
Werkzeug version: 2.3.3
Flask: 2.2.4

Ok, this was a bit too fast for my brain. This is a bug in flask 2.2.4. Sorry about that!
I will take a look at our dependencies later and see why we even get these incompatible packages.


KEP-1714: Fair Sharing

What type of PR is this?
/kind feature
/kind api-change
What this PR does / why we need it:
Defines how fair sharing of unused resources will work in Kueue.
Which issue(s) this PR fixes:
Fixes #1714
Special notes for your reviewer:
Does this PR introduce a user-facing change?
NONE

/cc @KunWuLuan @tenzen-y

cc @kerthcet

/lgtm
/approve


avoid heap allocation

Take the following as an example (there are probably more):
https://github.com/porres/pd-else/blob/958c39e7c81aedec88e76f88033bbb2319aa2431/Code_source/Compiled/control/merge.c#L34-L48
You are always allocating the output message on the heap. What you should do instead is allocate on the stack with alloca up to a certain limit and only above that fall back to heap allocation. See https://github.com/pure-data/pure-data/blob/c0a7c16c63e86ccc8ce05c8273ccd8aec7ae044c/src/m_private_utils.h#L22-L68

another one for @timothyschoen ?

Sorry, I'm still gonna be very busy with finishing off the next plugdata for the coming month. I might have some time for ELSE after that!

@porres It's not rocket science ;-) Just have a look at the source code for [list append], for example.

where exactly in [list append]? I know it's embarrassing, but I gotta ask, most of these terms are still alien to me and I could use some help while I'm always busy working with other stuff that I find more urgent :/

where exactly in [list append]?

Search for the ALLOCA and FREEA macros. Again, see https://github.com/pure-data/pure-data/blob/c0a7c16c63e86ccc8ce05c8273ccd8aec7ae044c/src/m_private_utils.h#L22-L68.

most of these terms are still alien to me and I could use some help while I'm always busy working with other stuff that I find more urgent :/

If you don't know the difference between heap and stack allocation, google it now :)

done by my personal rocket scientist https://github.com/porres/pd-else/pull/2023


pull request for e2e test at 01/24/2017 00:45:09

:white_check_mark: Validation status: passed
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.


A polyfil (ponyfil) implementation

Hello!
Thank you for this proposal and your hard work!
While waiting for the proposal to be generally available, I've implemented a custom JSON parser that is future-compatible with the proposal. It doesn't look feasible to make it a proper polyfil, considering that JS implementation will probably be slower and we can't detect new features usage, but it's a ponyfil that can be used today where needed.
I'm not sure that I've implemented all the features correctly, it's not that easy to follow the standard, but all the serialization examples should work correctly. I will be very grateful if someone could review the implementation.
Thanks!

You should certainly be able to detect this feature, since it’s API and not syntax.

You should certainly be able to detect this feature, since it’s API and not syntax.

Could you recommend an approach to do this?
Maybe I don't see something obvious here, but as far as I know JS doesn't have a reflection API that will allow me to examine the number of arguments of the passed callback function. Of course I can turn the function to a string and then parse it's code in order to detect whether it has a third argument, but it looks pretty brittle.
In general, the detection could only happen when the user accesses the context.source or context.keys properties of the reviver function argument, but when this happens it's already too late to change the underlying parser implementation.
The only approach I see is that we can use JSON.parse initially and then discard the parsed result and re-parse the content using our custom implementation when we detect access to the context argument. This will lead to parsing the JSON document two times in a worst-case scenario and we will need to count the number of callbacks that was already fired in order to not call reviver multiple times for the same property.
All these options are viable, but looks to hacky and not optimal to me.

@gibson042 @mathiasbynens @ljharb could you please take a look at the implementation or at least at the API of the library? There are also some tests for this proposal. I just need to know if I got the proposal correctly. Thanks in advance!

@slavafomin you wouldn't need to do it every time - you just do it once with a known source string, and cache the result forever. For example, from the readme, JSON.stringify({ tooBigForNumber }, bigIntToRawJSON) === '{"tooBigForNumber":9007199254740993}'  will be true when the feature is supported.

@slavafomin you wouldn't need to do it every time - you just do it once with a known source string, and cache the result forever. For example, from the readme, JSON.stringify({ tooBigForNumber }, bigIntToRawJSON) === '{"tooBigForNumber":9007199254740993}' will be true when the feature is supported.

I'm not sure I follow, could you elaborate please? What exactly should we cache?

the boolean result of that comparison - either true if it's supported, or false if it's not.

Maybe I don't see something obvious here, but as far as I know JS doesn't have a reflection API that will allow me to examine the number of arguments of the passed callback function. Of course I can turn the function to a string and then parse it's code in order to detect whether it has a third argument, but it looks pretty brittle. And this definitely won't work with the arguments.

Does
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length
solve the problem?

Maybe I don't see something obvious here, but as far as I know JS doesn't have a reflection API that will allow me to examine the number of arguments of the passed callback function. Of course I can turn the function to a string and then parse it's code in order to detect whether it has a third argument, but it looks pretty brittle. And this definitely won't work with the arguments.

Does https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length solve the problem?

Didn't know that, thanks for mentioning! I'm gonna test it out.

Does https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length solve the problem?

By the way it won't work with arguments, but I think it's a pretty rare use case so we can ignore it (document) for now.

Thanks to the @HolgerJeromin suggestion, I've implemented a proper polyfill. Here's the usage details. And here's the implementation.
I've already released a beta-version of the package that can be used for testing: @ton.js/json-parse-polyfill@beta.
Still, will be very happy for implementation review!

You can use this code to detect the new proposal:
let parse = function parse(string, callback) {
    callback(1, 2, { source: 3 });
};

function detect() {
  return new Promise(resolve => {
    // use JSON.parse here
    parse('"x"', function(key, value, x) {
      resolve(typeof x !== 'undefined');
    });
  });
}

const supported = await detect();

console.log({supported: await detect()});

parse = function parse(string, callback) {
    callback(1, 2);
};

console.log({supported: await detect()});

the parse function is JSON.parse mock that executes the receiver with an extra argument that is tested.

to whom it might concern, another ponyfill landed in ungap: https://github.com/ungap/raw-json


Fix shared parameters generation

This PR fixes issue and one nit related to shared parameters generation:

body is usually unique per method, hence do not generalize on body (e.g. patch has all fields optional)

do not generalize when path has single method. also this generalized parameters feature nevertheless is part of a spec having some issues with some renderers, like redoc.

body is usually unique per method, hence do not generalize on body (e.g. patch has all fields optional)

We don't generalize unless we find the same body in all operation objects in that route. This is allowed by the spec.

do not generalize when path has single method. also this generalized parameters feature nevertheless is part of a spec having some issues with some renderers, like redoc.

Does it make sense to disable this normalization through a config parameter? We don't support configuration for framework plugins as of now, but we can.

We don't generalize unless we find the same body in all operation objects in that route. This is allowed by the spec.

Oh I see, I did not knew about that there supposed to be such logic. Though I came from an issue which was reproducible in our project, so to illustrate I have commented out my change and amended params test. It has expected additional output:
                  "/api/v2/{resource}/v": {
                    "parameters": [{
                      "format": "int32",
                      "in": "path",
                      "name": "resource",
                      "required": true,
                      "type": "integer"
                    }],
                    "post": {
                      "parameters": [{
                        "in": "body",
                        "name": "body",
                        "required": true,
                        "schema": {
                          "$ref": "#/definitions/BadgeBody"
                        }
                      }],
                      "responses": {}
                    },
                    "patch": {
                        "parameters": [{
                          "in": "body",
                          "name": "body",
                          "required": true,
                          "schema": {
                            "$ref": "#/definitions/BadgeBodyPatch"
                          }
                        }],
                        "responses": {}
                    }
                  },

Instead it produces:
       "/api/v2/{resource}/v":{
         "parameters":[
            {
               "in":"body",
               "name":"body",
               "required":true,
               "schema":{
                  "$ref":"#/definitions/BadgeBody"
               }
            },
            {
               "format":"int32",
               "in":"path",
               "name":"resource",
               "required":true,
               "type":"integer"
            }
         ],
         "patch":{
            "responses":{

            }
         },
         "post":{
            "responses":{

            }
         }
      },

Does it make sense to disable this normalization through a config parameter? We don't support configuration for framework plugins as of now, but we can.

That would be awesome, definitely makes sense.

For the time being, we can disable normalization entirely, and we can introduce a mechanism (in the future) which performs a "deep equal" before marking the parameters as shared.

@wafflespeanut I have reimplemented it the way you described, just hidden normalization behind normalize feature (which is not usable atm), also amended tests accordnigly


Documentation for using the Python language is poor

Hey all,
I've been fighting with pulumi for the past few days because the docs are quite poor when it comes to the Python language. Things don't always translate straightforwardly from TS to Python and since examples are scarce with the Python language, it's really killing my effort right now.
I can see the Python language is well supported so it's even more frustrating to fight simple things such as https://github.com/pulumi/pulumi/issues/2366
Any update on that front would go a long way :)
Thanks!

Let's note that that this one example doesn't lie in its name:
https://github.com/pulumi/pulumi-gcp/blob/master/examples/minimal-py/__main__.py

This one is more useful at least:
https://github.com/pulumi/examples/blob/master/gcp-py-gke/__main__.py

@Lawouach Anything in particular beyond pulumi/pulumi#2366 that you were looking for but couldn't find in Python?  If so - we would love to make sure we have issues tracking them.  Also - is there documentation you couldn't find related to Python - or was the issue examples/tutorials and some feature gaps?

Hi there,
Thank you for replying :)
I think, generally speaking, ensuring we have all the examples in all languages would help. While the API seems to be on par, it doesn't always work as-is.
For instance, in plenty of places, the docs says to call pulumi.all or pulumi.apply (same with interpolate or concat). But none of them exists on the Pythonpulumimodule (like they seem to in TypeScript). Instead, you need to call the first two onpulumi.Output`. As for interpolate and concat, I don't know where they are defined.
I'm actually very happy https://github.com/pulumi/examples/blob/master/gcp-py-gke/main.py was added because I couldn't make it work without it. At least, I wasn't too clear on what I was supposed to call. But it was added 4 days ago, after I started my quest :)

Linking to this one as well :) https://github.com/pulumi/docs/issues/968

@lukehoban, I'll second @Lawouach's opinion: examples in all languages would be very helpful.
The way, for example, GCP does their documentation for multiple languages is very convenient: https://cloud.google.com/bigquery/docs/reference/libraries.
You can choose the language and all the code blocks on the page will change. I'm not familiar with Jekyll and don't know if this can easily be implemented, but if you provided that functionality and even left the python code blocks as something like "coming soon" then I guess people would help you to fill them in (including me!).

@oliverxchen Absolutely - in many places we do already have language choosers to let you get JavaScript/Python/Go code (like https://pulumi.io/reference/programming-model.html).  For the API documentation, we do not yet have examples for Python, but this is in the works.

We made a lot of improvements to the availability of Python snippets in the programming model docs recently.
The examples in API docs is blocked on (and tracked by) https://github.com/pulumi/tf2pulumi/issues/98.
There are likely a handful of other places we include TypeScript snippets throughout the docs where we should include language choosers which we should fix up.

@lukehoban Should I close this issue? Or is there more you'd like to see here?

I'm going to close this out given all the progress recently.
I think the single biggest remaining thing is pulumi/tf2pulumi#98 which is required to have examples in API docs for Python.
If there are other specific things, let's open individual issues.


fix: only remove empty chainIds

What it solves
Removal of pending transactions from store.
How this PR fixes it
The chainIds presence in the pending transaction store is checked before verifying it's length.
How to test it
Add a pending transaction and wait for it to succeed. Observe no presence of pendingTransactions[chainId] in the store.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/logic/safe/store/reducer/pendingTransactions.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3381

Relevant Lines:
8774

💛  - Coveralls

@francovenica has this been tested? Not sure who moved it to QA Done.

I think we decied to pass it since there is no functional way to test it (Basically the user would not see any difference) and we decided that regression would take care of it when is merged in the release branch

Looks good.
the chainID in the PendingTransaction value in the redux is gone when the tx if finally done


Fix broadcast_shapes handling of nan

Related to issue ( https://github.com/dask/dask/issues/3355 )
Fixes a bug where broadcast_shapes would mishandle nan lengths in shapes. Includes tests to verify nan is now handled correctly.

Is this useful as-is or does it need some other work to make pragmatic?

+1 from me

Thanks. Looks like it's passing.


Specify numpy versions (incompatible with numpy 2.0)

Hey, I'm trying to use this tool, but the environment file is not very specific on what numpy version to use and so it installs numpy 2.0 as default; However, there are pieces of code that have been since deprecated in numpy 2.0. Thins like np.array(..., copy=False) which are now np.asarray(...)
https://numpy.org/devdocs/numpy_2_0_migration_guide.html#adapting-to-changes-in-the-copy-keyword
    a = np.asarray(a, dtype=np.float64)
ValueError: Unable to avoid copy while creating an array as requested.
If using `np.array(obj, copy=False)` replace it with `np.asarray(obj)` to allow a copy when needed (no behavior change in NumPy 1.x).
For more details, see https://numpy.org/devdocs/numpy_2_0_migration_guide.html#adapting-to-changes-in-the-copy-keyword.

Might be worth adding the package versions to the environment file

Hi,
thanks for hint! Numpy v2.0 does introduce breaking changes indeed and we will tackle this with the next tacco release. For now, the recommended way to install tacco is via conda/mamba using:
conda install -c conda-forge tacco
This should install a working tacco instance with numpy = 1.26.4
Hope this helps!

Glad to see that TACCO seems to work nicely with Visium HD! We have not tested it on Visium HD yet, but while being an interesting new experimental method, we expect that for TACCO and most other compositional annotation methods Visium HD should in principle look just like a somewhat sparser regular Visium with more spots. And per spot you have more often just a single cell type than in regular Visium as the spatial resolution is higher. So one might expect that the compositional nature of Visium HD spots is actually not so important and basically any method that is able to get the majority cell type per spot correct is sufficient for the job.
But maybe the default parameter settings are not even the best and you might want to play around with them a little. One option might be to exploit this tendency to stronger unique celltypes per spot by lowering bisections from its default value maybe even to 0: That might still be sufficient to capture the majority signal per pixel and might make this annotation even faster (maybe in under a minute). Then you could even try more smaller bins like 2µm (expect like 16x pixels and 16x runtime compared to the 8µm case): One could expect that with higher spatial resolution the annotation should get more categorical but still remain smooth in space, until there is not enough data per bin to get the cell type right and the signal vanishes in noise. To force actual categorical results you can use the option max_annotation.
Anyway, as the default method OT runs so quickly, you can try out different settings rather fast and see what works best in your particular case. Either now or after getting a better feeling for the data after some down-stream analyses: If you lack a proper ground truth, the best metric which you have for judging the correctness of an annotation is whether it makes sense biologically.
While creating TACCO we invested a lot of work into making it really fast while not compromising on accuracy and flexibility (you might want to check out the paper and/or the benchmarking notebook in https://simonwm.github.io/tacco/notebooks/benchmarking.html ). So at least in our experience the TACCO results do make sense. But again, for Visium HD we have no experience.
Hope it helps nevertheless!

Glad to see that TACCO seems to work nicely with Visium HD! We have not tested it on Visium HD yet, but while being an interesting new experimental method, we expect that for TACCO and most other compositional annotation methods Visium HD should in principle look just like a somewhat sparser regular Visium with more spots. And per spot you have more often just a single cell type than in regular Visium as the spatial resolution is higher. So one might expect that the compositional nature of Visium HD spots is actually not so important and basically any method that is able to get the majority cell type per spot correct is sufficient for the job.
But maybe the default parameter settings are not even the best and you might want to play around with them a little. One option might be to exploit this tendency to stronger unique celltypes per spot by lowering bisections from its default value maybe even to 0: That might still be sufficient to capture the majority signal per pixel and might make this annotation even faster (maybe in under a minute). Then you could even try more smaller bins like 2µm (expect like 16x pixels and 16x runtime compared to the 8µm case): One could expect that with higher spatial resolution the annotation should get more categorical but still remain smooth in space, until there is not enough data per bin to get the cell type right and the signal vanishes in noise. To force actual categorical results you can use the option max_annotation.
Anyway, as the default method OT runs so quickly, you can try out different settings rather fast and see what works best in your particular case. Either now or after getting a better feeling for the data after some down-stream analyses: If you lack a proper ground truth, the best metric which you have for judging the correctness of an annotation is whether it makes sense biologically.
While creating TACCO we invested a lot of work into making it really fast while not compromising on accuracy and flexibility (you might want to check out the paper and/or the benchmarking notebook in https://simonwm.github.io/tacco/notebooks/benchmarking.html ). So at least in our experience the TACCO results do make sense. But again, for Visium HD we have no experience.
Hope it helps nevertheless!

Thank you for the reply! So far TACCO has been the only tool (besides DestVI, but this one is super slow to train and my own implementation using a boosting algorithm) that has been the most accurate with the annotations based on the cell markers expression using Visium HD data. Would be super cool if the OT method could also take in cell marker genes to guide the annotations as well! I've noticed that for example the fibroblasts cell types, OT method doesn't seem to be able to capture the same pattern that I see using the cell marker expression. So I think it would be quite interesting to see a future adaptation of OT with the cell markers for each cell type used as a "prior" of some sort. Is this something that is planned to be added in the future by any chance? :)
Thanks!

Regarding your comment about taking cell marker genes to guide the annotation: one option is to build a mock-reference anndata object that consists of the marker genes for each celltype only, so the matrix would be [celltypes x marker_genes].
For further explanations and some pseudocode examples for creating marker-based references look into following issues:
https://github.com/simonwm/tacco/issues/13
https://github.com/simonwm/tacco/issues/8
Creating an example notebook for VisiumHD is a good idea! We have it on our roadmap.
We are also thinking about adding TACCO to scverse.
Thanks for your input!


Make libxml version configurable

Describe the feature
Similar to #282 for  intl, it would be amazing if the libxml extension version could be configured.
Version

[x] I have checked releases and the feature is missing in the latest patch version of v2.

Underlying issue
Many hosting providers run a modern PHP version with an outdated libxml version. There are many strange combinations in the wild.
With this feature we'd be able to run unit tests against various combinations.
Describe alternatives
N/A
Additional context
N/A
Are you willing to submit a PR?
If this requires an additional repo like https://github.com/shivammathur/icu-intl, then this is probably a bit over my head.

libxml extension is not a shared extension, but is statically linked in the PHP binary. So unlike intl this would require compiling PHP with different releases of libxml2 and would be unmaintainable.

@shivammathur Thanks for your quick feedback! Didn't realize that :/ That makes my endeavour more difficult it seems. If I need to compile PHP myself for that, I assume I cannot use this GH action?

You can, Add a step before setup-php step to install and link your compiled PHP and setup-php will use that php, you will be able to add ini-values, add tools and install extensions from PECL.


End user GET handlers

The GET handlers for end user need to be created.
It should be another issue to implement "GET recommended coupons" because it's not as simple as others.
The handlers to be added on this issue is followings.

GET coupon detail
GET store detail
GET coupons of a store

Note that this issue also depends on template engine we choice, but it's not so bad to start this before resolving the issue.

I'm on this.

#145 implemented the GET coupon detail handler.


doc: How to integrate anychain-bitcoin crate using iOS/Android client.

We can use GitBook to manage the document.
How to use anychain-bitcoin
Prerequisites
Creating a Bitcoin Address
Validating a Bitcoin Address
Constructing an Amount
Constructing a Transaction
Sending a Transaction over the Network

chains:

[ ] bitcoin
[ ] tron


Add new section related to Packaging content and advanced features

New section about how to package audio/video for PlayReady clients, Windows 10, the Xbox and Microsoft Edge.
45 minutes of video tutorial about packaging, for static keys and for key rotation
In particular, one page summarizes for each format what Windows 10, the Xbox and Edge support, and how to format the ISO file headers, and the manifests.
A new section describes the PlayReady Features, including advanced features like Secure Delete and Secure Stop.
New page about CDM initialization.
Hundreds of minor fixes and additions.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

Line 16: [Error] Restore nuget package W:\ls2w-s.optemp\packages\opbuild.scripts.1.46.2\tools\packages.config in folder:W:\ls2w-s.optemp\packages failed, possibly due to transient errors from nuget servers. Please retry building your content. If the issue still happens, open a ticket in http://SiteHelp. Detailed error:  Errors in packages.config projects     Unable to find version '1.46.2' of package 'opbuild.initializecrrtool'.       D:\Windows\system32\config\systemprofile.nuget\packages: Package 'opbuild.initializecrrtool.1.46.2' is not found on source 'D:\Windows\system32\config\systemprofile.nuget\packages'.       https://www.myget.org/F/op/api/v2/: Package 'opbuild.initializecrrtool.1.46.2' is not found on source 'https://www.myget.org/F/op/api/v2/'.       https://nuget.org/api/v2/: Package 'opbuild.initializecrrtool.1.46.2' is not found on source 'https://nuget.org/api/v2/'.       https://www.myget.org/F/op-dev/api/v2/: Package 'opbuild.initializecrrtool.1.46.2' is not found on source 'https://www.myget.org/F/op-dev/api/v2/'.       https://www.myget.org/F/docfx/api/v2/: Package 'opbuild.initializecrrtool.1.46.2' is not found on source 'https://www.myget.org/F/docfx/api/v2/'.       https://www.myget.org/F/docfx-dev/api/v2/: Package 'opbuild.initializecrrtool.1.46.2' is not found on source 'https://www.myget.org/F/docfx-dev/api/v2/'.     Unable to find version '2.32.1' of package 'docfx.console'.       D:\Windows\system32\config\systemprofile.nuget\packages: Package 'docfx.console.2.32.1' is not found on source 'D:\Windows\system32\config\systemprofile.nuget\packages'.       https://www.myget.org/F/op/api/v2/: Package 'docfx.console.2.32.1' is not found on source 'https://www.myget.org/F/op/api/v2/'.       https://www.myget.org/F/op-dev/api/v2/: Package 'docfx.console.2.32.1' is not found on source 'https://www.myget.org/F/op-dev/api/v2/'.       https://nuget.org/api/v2/: Package 'docfx.console.2.32.1' is not found on source 'https://nuget.org/api/v2/'.       https://www.myget.org/F/docfx-dev/api/v2/: Package 'docfx.console.2.32.1' is not found on source 'https://www.myget.org/F/docfx-dev/api/v2/'.       https://www.myget.org/F/docfx/api/v2/: Package 'docfx.console.2.32.1' is not found on source 'https://www.myget.org/F/docfx/api/v2/'.

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.


Social networking is not done

Please help, mi blog http://said.rocks/ if you look tyhe social links, you will notice that it's not the right web

I'm not sure why this is an issue because nothing is wrong with the theme. You entered your email twice and you didn't use the correct Stack Overflow naming. http://fontawesome.io/icon/stack-overflow/


Rework Modal (without jQuery UI)

Until now, modal dialog were made using either jQueryUI Dialog or Bootstrap Modal.
This PR aims to remove the jQueryUI dependency and replace the jQuery Dialog by Bootstrap Modal.
However, since Bootstrap Modal didn't provide any function like jQ Dialog's one (i.e. build a modal from HTML), I had to made a utility function Modal.show which build the modal at runtime.
The enhancements from jQuery Dialog are:

Better window size and position handling (no specific code needed any longer)
Nicer design (see screenshots)
use ESCAPE to close
use ENTER to validate (only if one button other than Cancel is set)

Awesome work, it looks better now, while removing an external dependency !