List items overlapping header when removing an item

Hi There,
I have used your Parallax RecyclerView to load data from a cursor. I have modified the adapter to use a cursor instead of the List  that is there by default.
I have modified the removeItem method too like below.
public void removeItem(int position) {
    if (position < 0)
        return;
    notifyItemRemoved(position + (mHeader == null ? 0 : 1));

in the loaderFinished method, I swap the cursor and update the header values. in the existing adapter(not create a new adapter and swap adapter at recyclerview level)
This seems to be working perfectly, except for the UI. The values are updating correctly, but the list items seems to be overlapping the header after an item is removed.
This does not happen if the recyclerview is scrolled all the way to the top. But in any other position, it gives me something like this, with the list items overlapping the header (see below)

This is the ideal behavior

Let me know if you want the entire code of the Adapter I am using(the modified one)

It would be great if you could share the modified adapter. Just the parts you changed, there's no need to share the whole code if you don't want to.

Okay friend. I've been looking at my code and in fact it's not working with additions and removals of items if the adapter is not on top.
So, I've developed a little "workarround". It's kinda ugly (maybe not that ugly) but I think it will work. First let me ask you. Are your items all the same size? If so, great. Than this will work.
So you will need to create a new field on your adapter. Let's call it:
private int mRowSize = 0;

Next on your onBindViewHolder, and for the ViewType!=0 lets do something like this:
if(mRowSize==0){
    mRowSize= viewHolder.itemView.getHeight();
}

So this will set the row size to the actual row height.
Now whenever you remove an item:
mTotalYScrolled -=mRowSize;
And when you add an item:
mTotalYScrolled +=mRowSize;
I think this will work. Not sure. But give it a try and let me know :P

I have no problem sharing the whole code.. Not entirely mine either.. I was using an adapter shared by Matthieu Harlé here . https://gist.github.com/Shywim/127f207e7248fe48400b .
I just combined that adapter with yours :D
Right now I am at office. I'll try your fix once I get home.
But to answer your question- Yes, all the list items are of the same size.
Till that time.. here is the adapter I am using. it's a little big. You can ignore the whole subclass for filters. Even I'm not using it. And it's a little dirty, so bear with me.. :D
package com.designs.zoomonkey.writetrack.lib.parallaxrecyclerview;

import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.DataSetObserver;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.os.Build;
import android.os.Handler;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.TranslateAnimation;
import android.widget.Filter;
import android.widget.FilterQueryProvider;
import android.widget.RelativeLayout;

/**
 * Created by manu.joseph on 07-03-2015.
 * Combined two great libraries for RecyclerViews
 */
public class ParallaxCursorRecyclerAdapter<VH
        extends android.support.v7.widget.RecyclerView.ViewHolder> extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements CursorFilter.CursorFilterClient {

    private final float SCROLL_MULTIPLIER = 0.5f;

    public static class VIEW_TYPES {
        public static final int NORMAL = 1;
        public static final int HEADER = 2;
        public static final int FIRST_VIEW = 3;
    }

    public interface RecyclerAdapterMethods {
        void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position, Cursor cursor);

        RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position);
    }

    public ParallaxCursorRecyclerAdapter(Cursor cursor) {
        init(cursor);
    }

    public interface OnClickEvent {
        /**
         * Event triggered when you click on a item of the adapter
         *
         * @param v        view
         * @param position position on the array
         */
        void onClick(View v, int position);
    }

    public interface OnParallaxScroll {
        /**
         * Event triggered when the parallax is being scrolled.
         *
         * @param percentage
         * @param offset
         * @param parallax
         */
        void onParallaxScroll(float percentage, float offset, View parallax);
    }

    private CustomRelativeWrapper mHeader;
    private RecyclerAdapterMethods mRecyclerAdapterMethods;
    private OnClickEvent mOnClickEvent;
    private OnParallaxScroll mParallaxScroll;
    private RecyclerView mRecyclerView;
    private int mTotalYScrolled;
    private boolean mShouldClipView = true;
    /**
     * ****************************************************************************************************************************
     * CursorAdapter
     */
    private boolean mDataValid;
    private int mRowIDColumn;
    private Cursor mCursor;
    private ChangeObserver mChangeObserver;
    private DataSetObserver mDataSetObserver;
    private CursorFilter mCursorFilter;
    private FilterQueryProvider mFilterQueryProvider;

    void init(Cursor c) {
        boolean cursorPresent = c != null;
        mCursor = c;
        mDataValid = cursorPresent;
        mRowIDColumn = cursorPresent ? c.getColumnIndexOrThrow("_id") : -1;

        mChangeObserver = new ChangeObserver();
        mDataSetObserver = new MyDataSetObserver();

        if (cursorPresent) {
            if (mChangeObserver != null) c.registerContentObserver(mChangeObserver);
            if (mDataSetObserver != null) c.registerDataSetObserver(mDataSetObserver);
        }
    }

    public Cursor getCursor() {
        return mCursor;
    }

    /**
     * Change the underlying cursor to a new cursor. If there is an existing cursor it will be
     * closed.
     *
     * @param cursor The new cursor to be used
     */
    public void changeCursor(Cursor cursor) {
        Cursor old = swapCursor(cursor);
        if (old != null) {
            old.close();
        }
    }

    /**
     * Swap in a new Cursor, returning the old Cursor.  Unlike
     * {@link #changeCursor(Cursor)}, the returned old Cursor is not
     * closed.
     *
     * @param newCursor The new cursor to be used.
     * @return Returns the previously set Cursor, or null if there wasa not one.
     * If the given new Cursor is the same instance is the previously set
     * Cursor, null is also returned.
     */
    public Cursor swapCursor(Cursor newCursor) {
        if (newCursor == mCursor) {
            return null;
        }
        Cursor oldCursor = mCursor;
        if (oldCursor != null) {
            if (mChangeObserver != null) oldCursor.unregisterContentObserver(mChangeObserver);
            if (mDataSetObserver != null) oldCursor.unregisterDataSetObserver(mDataSetObserver);
        }
        mCursor = newCursor;
        if (newCursor != null) {
            if (mChangeObserver != null) newCursor.registerContentObserver(mChangeObserver);
            if (mDataSetObserver != null) newCursor.registerDataSetObserver(mDataSetObserver);
            mRowIDColumn = newCursor.getColumnIndexOrThrow("_id");
            mDataValid = true;
            // notify the observers about the new cursor
            notifyDataSetChanged();
        } else {
            mRowIDColumn = -1;
            mDataValid = false;
            // notify the observers about the lack of a data set
            // notifyDataSetInvalidated();
            notifyItemRangeRemoved(0, getItemCount());
        }
        return oldCursor;
    }

    /**
     *
Converts the cursor into a CharSequence. Subclasses should override this
     * method to convert their results. The default implementation returns an
     * empty String for null values or the default String representation of
     * the value.

     *
     * @param cursor the cursor to convert to a CharSequence
     * @return a CharSequence representing the value
     */
    public CharSequence convertToString(Cursor cursor) {
        return cursor == null ? "" : cursor.toString();
    }

    /**
     * Runs a query with the specified constraint. This query is requested
     * by the filter attached to this adapter.
     *

     * The query is provided by a
     * {@link android.widget.FilterQueryProvider}.
     * If no provider is specified, the current cursor is not filtered and returned.
     *

     * After this method returns the resulting cursor is passed to {@link #changeCursor(Cursor)}
     * and the previous cursor is closed.
     *

     * This method is always executed on a background thread, not on the
     * application's main thread (or UI thread.)
     *

     * Contract: when constraint is null or empty, the original results,
     * prior to any filtering, must be returned.
     *
     * @param constraint the constraint with which the query must be filtered
     * @return a Cursor representing the results of the new query
     * @see #getFilter()
     * @see #getFilterQueryProvider()
     * @see #setFilterQueryProvider(android.widget.FilterQueryProvider)
     */
    public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
        if (mFilterQueryProvider != null) {
            return mFilterQueryProvider.runQuery(constraint);
        }

        return mCursor;
    }

    public Filter getFilter() {
        if (mCursorFilter == null) {
            mCursorFilter = new CursorFilter(this);
        }
        return mCursorFilter;
    }

    /**
     * Returns the query filter provider used for filtering. When the
     * provider is null, no filtering occurs.
     *
     * @return the current filter query provider or null if it does not exist
     * @see #setFilterQueryProvider(android.widget.FilterQueryProvider)
     * @see #runQueryOnBackgroundThread(CharSequence)
     */
    public FilterQueryProvider getFilterQueryProvider() {
        return mFilterQueryProvider;
    }

    /**
     * Sets the query filter provider used to filter the current Cursor.
     * The provider's
     * {@link android.widget.FilterQueryProvider#runQuery(CharSequence)}
     * method is invoked when filtering is requested by a client of
     * this adapter.
     *
     * @param filterQueryProvider the filter query provider or null to remove it
     * @see #getFilterQueryProvider()
     * @see #runQueryOnBackgroundThread(CharSequence)
     */
    public void setFilterQueryProvider(FilterQueryProvider filterQueryProvider) {
        mFilterQueryProvider = filterQueryProvider;
    }

    /**
     * Called when the {@link android.database.ContentObserver} on the cursor receives a change notification.
     * Can be implemented by sub-class.
     *
     * @see android.database.ContentObserver#onChange(boolean)
     */
    protected void onContentChanged() {

    }

/******************************************************************************************************************************
 * ParallaxAdapter
 * **/

     /**
     * Translates the adapter in Y
     *
     * @param of offset in px
     */
    public void translateHeader(float of) {
        float ofCalculated = of * SCROLL_MULTIPLIER;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            mHeader.setTranslationY(ofCalculated);
        } else {
            TranslateAnimation anim = new TranslateAnimation(0, 0, ofCalculated, ofCalculated);
            anim.setFillAfter(true);
            anim.setDuration(0);
            mHeader.startAnimation(anim);
        }
        mHeader.setClipY(Math.round(ofCalculated));
        if (mParallaxScroll != null) {
            float left = Math.min(1, ((ofCalculated) / (mHeader.getHeight() * SCROLL_MULTIPLIER)));
            mParallaxScroll.onParallaxScroll(left, of, mHeader);
        }
    }

    /**
     * Set the view as header.
     *
     * @param header The inflated header
     * @param view   The RecyclerView to set scroll listeners
     */
    public void setParallaxHeader(View header, final RecyclerView view) {
        mRecyclerView = view;
        mHeader = new CustomRelativeWrapper(header.getContext(), mShouldClipView);
        mHeader.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        mHeader.addView(header, new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

        view.setOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                if (mHeader != null) {
                    mTotalYScrolled += dy;
                    translateHeader(mTotalYScrolled);
                }
            }
        });
    }

    public void removeParallaxHeader() {
        mHeader.removeAllViews();
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int i) {
        if (!mDataValid) {
            throw new IllegalStateException("this should only be called when the cursor is valid");
        }

        if (i > 0 && !mCursor.moveToPosition(i - 1)) {
            throw new IllegalStateException("couldn't move cursor to position " + i);
        }
//        Log.d("BAWDA", "position: " + i + ": holder type: " + viewHolder.getItemViewType() + ": cursor current position: " + mCursor.getPosition());
        if (mRecyclerAdapterMethods == null)
            throw new NullPointerException("You must call implementRecyclerAdapterMethods");
        if (i != 0 && mHeader != null) {
            mRecyclerAdapterMethods.onBindViewHolder(viewHolder, i - 1, mCursor);
        } else if (i != 0)
            mRecyclerAdapterMethods.onBindViewHolder(viewHolder, i, mCursor);
        if (mOnClickEvent != null)
            viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mOnClickEvent.onClick(v, i - (mHeader == null ? 0 : 1));
                }
            });
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        if (mRecyclerAdapterMethods == null)
            throw new NullPointerException("You must call implementRecyclerAdapterMethods");
        if (i == VIEW_TYPES.HEADER && mHeader != null)
            return new ViewHolder(mHeader);
        if (i == VIEW_TYPES.FIRST_VIEW && mHeader != null && mRecyclerView != null) {
            RecyclerView.ViewHolder holder = mRecyclerView.findViewHolderForPosition(0);
            if (holder != null) {
                translateHeader(-holder.itemView.getTop());
                mTotalYScrolled = -holder.itemView.getTop();
            }
        }
        return mRecyclerAdapterMethods.onCreateViewHolder(viewGroup, i);
    }

    /**
     * @return true if there is a header on this adapter, false otherwise
     */
    public boolean hasHeader() {
        return mHeader != null;
    }

    public void setOnClickEvent(OnClickEvent onClickEvent) {
        mOnClickEvent = onClickEvent;
    }

    public boolean isShouldClipView() {
        return mShouldClipView;
    }

    /**
     * Defines if we will clip the layout or not. MUST BE CALLED BEFORE {@link #setParallaxHeader(android.view.View, android.support.v7.widget.RecyclerView)}
     *
     * @param shouldClickView
     */
    public void setShouldClipView(boolean shouldClickView) {
        mShouldClipView = shouldClickView;
    }

    public void setOnParallaxScroll(OnParallaxScroll parallaxScroll) {
        mParallaxScroll = parallaxScroll;
        mParallaxScroll.onParallaxScroll(0, 0, mHeader);
    }

/*    //Required Default Constructor
    public ParallaxRecyclerAdapter() {

    }*/

/*    public List<T> getData() {
        return mData;
    }

    public void setData(List<T> data) {
        mData = data;
        notifyDataSetChanged();
    }*/

/*    public void addItem(T item, int position) {
        mData.add(position, item);
        notifyItemInserted(position + (mHeader == null ? 0 : 1));
    }*/

    public void removeItem(int position) {
        if (position < 0)
            return;
        notifyItemRemoved(position + (mHeader == null ? 0 : 1));
    }

    public int getItemCount() {
        if (mDataValid && mCursor != null) {
            return mCursor.getCount() + (mHeader == null ? 0 : 1);
        } else {
            return 0 + (mHeader == null ? 0 : 1);
        }
    }

    @Override
    public int getItemViewType(int position) {
        if (mRecyclerAdapterMethods == null)
            throw new NullPointerException("You must call implementRecyclerAdapterMethods");
        if (position == 1)
            return VIEW_TYPES.FIRST_VIEW;
        return position == 0 ? VIEW_TYPES.HEADER : VIEW_TYPES.NORMAL;
    }

    /**
     * @see android.widget.ListAdapter#getItemId(int)
     */
    @Override
    public long getItemId(int position) {
        if (mDataValid && mCursor != null) {
            if (mCursor.moveToPosition(position)) {
                return mCursor.getLong(mRowIDColumn);
            } else {
                return 0;
            }
        } else {
            return 0;
        }
    }

    /**
     * You must call this method to set your normal adapter methods
     *
     * @param callbacks
     */
    public void implementRecyclerAdapterMethods(RecyclerAdapterMethods callbacks) {
        mRecyclerAdapterMethods = callbacks;
    }

    static class ViewHolder extends RecyclerView.ViewHolder {
        public ViewHolder(View itemView) {
            super(itemView);
        }
    }

    static class CustomRelativeWrapper extends RelativeLayout {

        private int mOffset;
        private boolean mShouldClip;

        public CustomRelativeWrapper(Context context, boolean shouldClick) {
            super(context);
            mShouldClip = shouldClick;
        }

        @Override
        protected void dispatchDraw(Canvas canvas) {
            if (mShouldClip) {
                canvas.clipRect(new Rect(getLeft(), getTop(), getRight(), getBottom() + mOffset));
            }
            super.dispatchDraw(canvas);
        }

        public void setClipY(int offset) {
            mOffset = offset;
            invalidate();
        }
    }

    /**
     * ****************************************************************************************************************************
     */

    private class ChangeObserver extends ContentObserver {
        public ChangeObserver() {
            super(new Handler());
        }

        @Override
        public boolean deliverSelfNotifications() {
            return true;
        }

        @Override
        public void onChange(boolean selfChange) {
            onContentChanged();
        }
    }

    private class MyDataSetObserver extends DataSetObserver {
        @Override
        public void onChanged() {
            mDataValid = true;
            notifyDataSetChanged();
        }

        @Override
        public void onInvalidated() {
            mDataValid = false;
            // notifyDataSetInvalidated();
            notifyItemRangeRemoved(0, getItemCount());
        }
    }

}

class CursorFilter extends Filter {

    CursorFilterClient mClient;

    interface CursorFilterClient {
        CharSequence convertToString(Cursor cursor);

        Cursor runQueryOnBackgroundThread(CharSequence constraint);

        Cursor getCursor();

        void changeCursor(Cursor cursor);
    }

    CursorFilter(CursorFilterClient client) {
        mClient = client;
    }

    @Override
    public CharSequence convertResultToString(Object resultValue) {
        return mClient.convertToString((Cursor) resultValue);
    }

    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        Cursor cursor = mClient.runQueryOnBackgroundThread(constraint);

        FilterResults results = new FilterResults();
        if (cursor != null) {
            results.count = cursor.getCount();
            results.values = cursor;
        } else {
            results.count = 0;
            results.values = null;
        }
        return results;
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {
        Cursor oldCursor = mClient.getCursor();

        if (results.values != null && results.values != oldCursor) {
            mClient.changeCursor((Cursor) results.values);
        }
    }
}

I have bad news my friend.. I tried that fix. It seemed to be working in the beginning until i scrolled.
This is what I get now

I also get the initial problem sometimes....

Can you make a little more tests please?
I tested and sometimes it's working and sometimes it's not. It depends on the scroll position. Also what item are you removing?
I will keep testing tomorrow and hopeful find a fix.

Sure man. I'll do some more testing and get back to you.
On Mar 24, 2015 11:47 PM, "Pedro Oliveira"<EMAIL_ADDRESS>wrote:

Can you make a little more tests please?
I tested and sometimes it's working and sometimes it's not. It depends on
the scroll position. Also what item are you removing?
I will keep testing tomorrow and hopeful find a fix.
—
Reply to this email directly or view it on GitHub
https://github.com/kanytu/android-parallax-recyclerview/issues/13#issuecomment-85629108
.

Hey,
I did some testing. There are two different undesirable behavior -

Overlap of content with the header
Empty space (equal to the row height) just below the header.

These are some conditions when I got these screens

Scroll Position : Top, Delete top item : OK
Scroll Position : Top, Delete second item : Empty Space
Scroll Position : Mid(header visible), Delete first item : OK
Scroll Position : Mid(header visible), Delete second item : Overlap
Scroll Position: Min (header not visible), Delete a middle item(not
first, not last) : Empty Space
Scroll Position: Bottom, delete any item: Overlap

Hope this helps.
On Wed, Mar 25, 2015 at 9:31 AM, Manu Joseph<EMAIL_ADDRESS>wrote:

Sure man. I'll do some more testing and get back to you.
On Mar 24, 2015 11:47 PM, "Pedro Oliveira"<EMAIL_ADDRESS>wrote:

Can you make a little more tests please?
I tested and sometimes it's working and sometimes it's not. It depends on
the scroll position. Also what item are you removing?
I will keep testing tomorrow and hopeful find a fix.
—
Reply to this email directly or view it on GitHub
https://github.com/kanytu/android-parallax-recyclerview/issues/13#issuecomment-85629108
.

Hi again :)
Unfortunately this will take some effort to fix. The problem is that mTotalYScrolled field. I'm relying on it to translate the header but it will not work when you remove or add items. If your app doesn't support orientation changes (and that's why there is a mTotalYScrolled there in the first place) you can try to use the older method to translate the header.
Change the setOnScrollListener on the adapter to:
    view.setOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if (mHeader != null) {
                ViewHolder holder = (com.poliveira.parallaxrecycleradapter.ParallaxRecyclerAdapter.ViewHolder) recyclerView.findViewHolderForPosition(0);
                if (holder != null)
                    translateHeader(-holder.itemView.getTop() * 0.5f);
                //mTotalYScrolled += dy;
                //translateHeader(dy);
            }
        }
    });

You might need to change that cast.
Next change on the translateHeader method the line:
float ofCalculated = of;// * SCROLL_MULTIPLIER;

Perform some tests and come back to me. I will, once I have the time to, change the whole library to not rely on scroll positions.

I am not currently supporting orientation changes, but mainly cause the app
is in development phase. But I plan to support orientation change
eventually. I'll be able to test it only after a couple of days. Going on a
vacation... LOL..
P.S - I think I'll just replace the whole adapter in the recyclerview once
something is deleted (temporarily). That seems to work.
P.P.S - On a totally different note, I was trying to implement Activity
Transitions in my app. Is it possible to split the RecyclerView and slide
them off the screen? (Header goes out the top and the rest of the list
items off the bottom) Just a thought. I think I can get the header to slide
off since I have a reference to it. Not sure about the other list items. I
will try that once I'm back from vacation and let you know. Cheers and keep
up the good work :)
On Wed, Mar 25, 2015 at 11:42 PM, Pedro Oliveira<EMAIL_ADDRESS>wrote:

Hi again :)
Unfortunately this will take some effort to fix. The problem is that
mTotalYScrolled field. I'm relying on it to translate the header but it
will not work when you remove or add items. If your app doesn't support
orientation changes (and that's why there is a mTotalYScrolled there in the
first place) you can try to use the older method to translate the header.
Change the setOnScrollListener on the adapter to:
view.setOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        if (mHeader != null) {
            ViewHolder holder = (com.poliveira.parallaxrecycleradapter.ParallaxRecyclerAdapter.ViewHolder) recyclerView.findViewHolderForPosition(0);
            if (holder != null)
                translateHeader(-holder.itemView.getTop() * 0.5f);
            //mTotalYScrolled += dy;
            //translateHeader(dy);
        }
    }
});

You might need to change that cast.
Next change on the translateHeader method the line:
float ofCalculated = of;// * SCROLL_MULTIPLIER;
Perform some tests and come back to me. I will, once I have the time to,
change the whole library to not rely on scroll positions.
—
Reply to this email directly or view it on GitHub
https://github.com/kanytu/android-parallax-recyclerview/issues/13#issuecomment-86154807
.


I had a hard time just getting it to work and I hate the end result (it's unreadable):


gruvbox-plus-icons: init at unstable-2023-11-30

Description of changes
Added gruvbox-icons-plus and material-cursors
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[x] 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

[ ] 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
[ ] 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.

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

Ok to merge now?

Thanks and welcome to nixpkgs!


TeamStats information as the game progresses

I have been searching the source code to find out whether it is possible to obtain the TeamStats not for a whole game but only up to a specific point in the game.  I don't seem to have found something that already exists but I was in general wondering whether this is possible with some easy way (one way could be to get the list of plays and "manually" assemble the statistics after every play but this seems rather "painful" in order to parse each play).

As far as I know, there's not a native nflgame way to step through a game after that game has finished.
While I think it's main purpose is for debugging, I believe you might be able to utilize nfldb's update._simulate functionality to step through a game play by play and extract data you might be interested in.

Thanks! I will check it out.


[QUERY] How to migrate to .NET 6 given I ran across an AMQP limitation?

Library name and version
Azure.Messaging.ServiceBus 7.12.0
Query/Question
We have a WebAPI application that targets .NET 4.8 and uses WindowsAzure.ServiceBus. One of the app's core functionalities is to PeekLock a message within the first API call and then complete it within another (Complete) API call. You can think of the app as the gateway for a subset of Azure ServiceBus. We do not want our customers to have direct access to Azure Service Bus, hence we created an API that adds extra authorization, logging, throttling, business validation etc.
The app is hosted in Azure and is configured to scale out dynamically, so inherently there is more than one instance of the API running. Even if there was only single instance running, during deployment, it might happen that PeekLock call is made against the "old" instance and Complete against the newly deployed one.
We currently rely on Service Bus Messaging Protocol (SBMP) which supports our PeekLock/Complete scenario just fine. However, our Product Owner asked us to migrate to .NET 6. I have tried migrating our code to use the latest Azure.Messaging.ServiceBus as WindowsAzure.ServiceBus does not target .NET Core/NET 5+.  It seems that I have run across a showstopper described in the issue.
Since Microsoft decided to drop support for SBMP in the latest SDK, what are our options?
Environment
.NET 4.8 & WindowsAzure.ServiceBus 3.3.2
willing to migrate to .NET 6

Hi @dzendras.   Thank you for reaching out and we regret that you're experiencing difficulties.  It is not possible to receive a message from one instance and complete it in another.  Service Bus requires that a message be completed on the same link from which it was received.  This is a service limitation and not something that the client has influence over or can work around.  The Service Bus team has acknowledged this limitation and confirmed it is by design.  (see: #455)
Unfortunately, this repository is focused on the Azure SDK for .NET - we're unable to assist with other Azure issues.  Since what you're describing is a service behavior and not related to the SDK, your best path forward would be to share your Service Bus feedback or open an Azure support request.
I'm going to close this out; if I've misunderstood what you're describing, please let us know in a comment and we'd be happy to assist as we're able.

Hi @jsquire. Thank you for the quick reply.
I understand the AMQP limitation. I do not understand why Azure SDK for .NET dropped support for SBMP, leaving clients like me stuck on .NET 4.8, effectively. I am sure that the decision was well thought of, so I would like to learn what the Team suggests in such scenario.
Our product was designed a few years ago with specific capabilities in mind, which are unavailable if we want to keep track with the latest .NET solutions. On one hand, Microsoft gradually obsoletes .NET Framework (e.g. .NET Standard 2.1 not supported), encouraging people to migrate to the latest .NET Core/5+. On the other hand, removes capabilities from .NET Core/5+ SDK leaving its customers in quasi-legacy mode.
I am sorry if you felt like I wanted to ask you for an Azure architecture advice. I just showed you a valid, quite straightforward scenario that uses Microsoft's infrastructure which cannot be implemented using the new SDK.
I believe that the issue can be solved purely by the Azure .NET SDK Team.

Thank you for the quick and accurate response, @jsquire !
I appreciate the explanation. I know my situation now and can think of potential workarounds.


Unable to retrieve credentials error when installing vault-operator

Was trying to install vault-operator but getting the following error. Seems there is a permission issue.
Error: GET "https://ghcr.io/v2/bank-vaults/helm-charts/vault-operator/tags/list": unable to retrieve credentials

➜ helm version
version.BuildInfo{Version:"v3.12.2", GitCommit:"1e210a2c8cc5117d1055bfaa5d40f51bbc2e345e", GitTreeState:"clean", GoVersion:"go1.20.6"}

Can't seem to be able to reproduce. Do you have any credentials specified for ghcr.io?

I have github credentials set in my home directory. Does ghcr.io need special credentials?

I figured it out! It's my first time using ghcr.io, didn't know it need explicitly login with github token. It works now! Thanks.


Support for rails 7.1

Solves issue #81

@mathieujobin Thanks for taking a stab at this! I decided to go with this solution: https://github.com/DatabaseCleaner/database_cleaner-active_record/pull/78


Add Demo

Please add 2 or 3 photos to the README file while using the application GUI to show them as a demo
please add the photos to a directory called images

i couldn't upload the image directly!


Release v55.0.0

Fixes https://github.com/Azure/sdk-release-request/issues/1593
Fixes https://github.com/Azure/sdk-release-request/issues/1590
Fixes https://github.com/Azure/sdk-release-request/issues/1601
Fixes https://github.com/Azure/sdk-release-request/issues/1588
Fixes https://github.com/Azure/sdk-release-request/issues/1555
Fixes https://github.com/Azure/sdk-release-request/issues/1597
Fixes https://github.com/Azure/sdk-release-request/issues/1609
Fixes https://github.com/Azure/sdk-release-request/issues/1619
Fixes https://github.com/Azure/sdk-release-request/issues/1606

/check-enforcer evaluate


support worker_shutdown_timeout released in 1.11.11

changelog: http://nginx.org/en/CHANGES
docs about it: http://nginx.org/en/docs/ngx_core_module.html#worker_shutdown_timeout

Thanks


Merge pull request #1 from davidyell/master

Update to newest

oops! i messed up. Remove this please :)


Feature Request: integrate ports in ruleset

Hi all,
adding the possibility to define which ports should be opened / closed would be great (not only source). I have containers with ports for admin access (different ports) and I do not want to open these ports (only the "consumer ports").
Thanks and kind regards
Itchy2

Hi. I think you can achieve the same result with only selecting the necessary ports with -p flag. For example if container uses 2 different ports 80 and 81 and you want to expose only port 80, you could do docker run -d -p 80:80 -l UFW_MANAGED=TRUE nginx:alpine. Port 81 will stay closed on the firewall.

Yes, but with this approach nobody can access Port 81. I want to connect to port 81 from another subnet (so port 80 / 443 from WAN and 81 from LAN).

I don't get the idea. Can you give an example?

I have a reverse proxy based on NPM. Port 80 and 443 are used for accessing the server. Port 81 is used for the management console. so I need -p 80:80 443:443 81:81 to get all functionalities enabled. UFW-Docker does not affect the local IP adresses <IP_ADDRESS>/8, <IP_ADDRESS>/12,  <IP_ADDRESS>/16. If I set UFW_MANAGED=TRUE  ufw will open also Port 81 with the same rules as for 80 and 443. The management interface will also opened to the WAN www. But I only want to allow port 80 and 443 to be opened to the outside world.
I hope this explanation makes it more understandable? Sorry, I am not a native speaker.

Hmm. In that case -l UFW_ALLOW_FROM=<IP_ADDRESS>/24-LAN;<IP_ADDRESS>/32-WAN work for you? You can whitelist the IP addresses in the UFW_ALLOW_FROM label. So you can filter out.

unfortunately not, because this will open all three ports into both networks. Something like: -l UFW_ALLOW_FROM=<IP_ADDRESS>/24:80-81,443-LAN;ANY:80,443-WAN would be a solution.

Ah I see. So current implementation is like all in or nothing and tightly coupled with all published ports. But you want to define different source IPs like, for example different -p ports can be matched with different UFW_ALLOW_FROM label?
Example:
Container publishes 3 different ports. 80, 443, 8080.
Current implementation: Opens 80, 443, 8080 all at once from single UFW_ALLOW_FROM label.
Wanted implementation: Opens 80, 443 maybe from <IP_ADDRESS>/0, but 8080 from different UFW_ALLOW_FROM label.
Did I understand you correctly this time?

yes perfect. That's what I need 👍

This is now implemented. Now you can do something like this:
# Allow from certain IP address, CIDR ranges to different Port + comments
➜ docker run -d -p 8088:88 -p 8089:89 -p 8090:90 -l UFW_MANAGED=TRUE -l UFW_ALLOW_FROM="<IP_ADDRESS>/0-88-Internet;<IP_ADDRESS>/24-89-LAN;<IP_ADDRESS>-90" nginx:alpine

# Results
➜ sudo ufw status
Status: active

<IP_ADDRESS> 88/tcp          ALLOW FWD   Anywhere                   # awesome_leavitt:6ebdb0c87a56 Internet
<IP_ADDRESS> 89/tcp          ALLOW FWD   <IP_ADDRESS>/24             # awesome_leavitt:6ebdb0c87a56 LAN
<IP_ADDRESS> 90/tcp          ALLOW FWD   <IP_ADDRESS>                 # awesome_leavitt:6ebdb0c87a56


NSFS | NC | Add Validate Flags Combination

Explain the changes

Add validate flags combination.

Issues: Fixed #7918

Currently, an Invalid flags combination is ignored, examples:

--show_secrets without wide in account status (--show_secrets is ignored).
--user with --gid and --uid (gid and uid are ignored).

Testing Instructions:
Unit Tests

Please run: sudo npx jest test_nc_nsfs_account_cli.test.js.

[ ] Doc added/updated
[X] Tests added

@shirady Awesome! Regarding the Gap you wrote - why is this a gap?

I removed it, I just wanted to verify works (we can update only gid or uid in account update).


refactor: split source parser into separate crate

Reason: "parser" (encoding related stuff) is self-contained, and does not relate with external systems.
This is also a good chance to make the code more organized.
related: #16841

Similarly for sink encoder. (But maybe we can put them together, instead of two crates? Not sure 🤔 (But more crates doesn't hurt))


Need to install pytest manually with generic link to logs

Testing #24506
As others have mentioned in the parent issue, I needed to run pip install pytest after VS Code created the virtual env for me
For reference, this is what I saw beforehand:

this was an issue where I put the wrong args in the example workspace + pytest always has to be installed manually


Test installer commands (retry)

This is a retry of #182.  I have added a gemfile for Rails 6.1, and refreshed all gemfile lock files.
@dhh I did not track down the root cause of the messages in https://github.com/rails/jsbundling-rails/pull/196#issue-2436103482, but they only appear when testing with Rails 6.0.  Currently, main branch tests with Rail 6.1 by default.  In #182, I had changed that to Rails 6.0 to match the gemspec, but I have changed it back to Rails 6.1 in this PR.
In summary, after this PR is merged: the gemspec will require Rails >= 6.0, bundle exec rake will test with Rails 6.1, and CI will test with Rails >= 6.1.

That worked!

@dhh

Could you add a bin/test binstub as well to trigger this?

Do you mean a binstub to run bundle exec rake with just the default Gemfile, or once for each gemfile?  I've submitted #198 to do the latter, but I can strip out the loop if you prefer.

And maybe we should also get some github hooks setup to run automatically on PRs.

The GitHub workflow from this PR will trigger on PRs:
https://github.com/rails/jsbundling-rails/blob/2413e21cd6d6c42bbaad1d3275b50faac63707ba/.github/workflows/ci.yml#L2
Or did you mean something else?

Was thinking that bin/test should run everything.
Ahh, hadn't noticed that on the ci.yml. All good then.


Get forecast for lat/lng?

Hi, nice package. I have some ski areas that don't show up as cities. Is there a way to access the reports by lat/lng? It seems like an easy fix if it isn't already there, as you already map cities to lat/lng coordinates. If you want a PR, let me know.

Hi John, thanks for reaching out. I have added support to get reports directly via lat/long for all the plot_hourly_* functions. It will be available in v0.5.0 via https://github.com/vnegi10/WeatherReport.jl/pull/16.
That leaves show_current and show_daily. These also need timezone as an input to the API call. I need to think of a way to derive it from the coordinates, which will be better than asking the user for an additional input.
If you see room for other improvements, please don't hesitate to open an issue or a PR.

Thanks. One other thing that I thought would be useful is to allow a user to query their current location, something like the following (which is opt-in):
function where_am_I()
    url = "http://ip-api.com/json"
    d = get_api_response(url)
    (lat=d["lat"], lon=d["lon"], tz=d["timezone"])
end

Thanks. One other thing that I thought would be useful is to allow a user to query their current location, something like the following (which is opt-in):

where_am_i() has been added in v0.5.2.

Awesome! Thanks so much.


lxa_iobus: move the project from setup.py to pyproject.toml

The pyproject.toml format is the new and modern way to package python projects. We still use setuptools under the hood to do the packaging, but configure it in the pyproject.toml.
This change also moves the executable scripts from the bin folder, where they were e.g. not caught by flake8 and black by default, into the python project folder itself.
TODO before merging:

[ ] This PR is based on #36, which is in turn based in #34, so both of these should be merged before this one
[x] This PR currently removes the make qa and make sdist make targets. Find out how to bring them back (if needed).
[ ] Check if there is any documentation that need updating now.

#36 has been merged. And there are conflicts. Please rebase.


Bump Flyway Version to 10.18.1

@gahoekstraibm The OSS and Redgate API for parsers had become out of sync. This update should resynchronize those API methods.


It does not run on DigitalOcean Droplet

When I try to execute create-react-app on my DigitalOcean Droplet with 512 MB RAM, it keeps aborting when installing react-scripts. Maybe there should be a flag to specify the maximum memory usage when executing the command.
See this question on SO

Just speaking as an outside observer, but even if you did manage to get CRA to build w/ that little amount of memory, you'd surely be hard pressed if using it to build an actual application.
A workaround would be to build the project locally and then use the compiled assets on your DO server.


Add template repositories to comparison

As title
GitHub has this feature
Gogs (best I could find)
GitLab
BitBucket
RhodeCode: I couldn't find anything for it

Perhaps Issues: Related issues can be added as well? Unless it's a different thing from issue cross-references.

Codecov Report

Merging #9101 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #9101      +/-   ##
==========================================
+ Coverage   41.14%   41.15%   +<.01%
==========================================
  Files         549      549
  Lines       71501    71501
==========================================
+ Hits        29420    29423       +3
+ Misses      38359    38358       -1
+ Partials     3722     3720       -2

Impacted Files
Coverage Δ

models/unit.go
62.16% <0%> (-5.41%)
:arrow_down:

models/gpg_key.go
55.59% <0%> (+0.55%)
:arrow_up:

models/repo_list.go
74.07% <0%> (+0.92%)
: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 1615b3c...b83b228. Read the comment docs.

Perhaps Issues: Related issues can be added as well? Unless it's a different thing from issue cross-references.

It is different, it is https://github.blog/changelog/2018-11-05-related-issues/


🐛 BUG: Using fetch results in an error

Describe the Bug
---
const data = await fetch("url")
// Top-level 'await' expressions are only allowed when the 'module' option is set to 'esnext' or 'system', and the 'target' option is set to 'es2017' or higher
---

Steps to Reproduce

Use fetch in the component script section.

Thanks for finding all of these issues @RafidMuhymin ! Can you provide an example project where this occurs? I've been unable to recreate it myself.

This shouldn't be an issue anymore since this commit https://github.com/withastro/language-tools/commit/65017573a4d8f585dc93ed1fac601c9e721d3f28 is it?

Yep! Good point, thanks.


fix typo?

in terminology aliases, there is
$ICD11 = http://id.who.int/icd11/mms
I believe it is
$ICD11 = http://icd.who.int/icd11/mms
@rmrlangford

Thanks very much @costateixeira

Hello @costateixeira , seems that the change in URL hasn't solved the problem :( Please see attached

Hi.
Yes, i noticed the typo but this is a known limitation and it is not
incorrect:
https://chat.fhir.org/#narrow/stream/179166-implementers/topic/IG
Because you want to have a clean QA, we can dismiss those warnings - do you
want me to make a PR for that?
On Thu, Jan 12, 2023 at 8:18 AM rmrlangford @.***>
wrote:

Hello @costateixeira https://github.com/costateixeira , seems that the
change in URL hasn't solved the problem :( Please see attached
[image: image]
https://user-images.githubusercontent.com/27767074/212002167-47e601f2-6d68-4572-b96f-47accc36704c.png
—
Reply to this email directly, view it on GitHub
https://github.com/openhie/cares-covid-ig/pull/112#issuecomment-1379907329,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD3HUUA2UPLUY6QJXROEBQTWR6V4VANCNFSM6AAAAAATYN7RWE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks @costateixeira , I think I will give it a shot so that I can learn from it :)


How to perform wald test for selected joint coefficients?

Is there an easy way to calculate not the F-test, but instead just the hypothesis that a few coefficients jointly equal 0?

There isn't a method to do this -- so would need to use a manual walk of the form (RB)'(R V R)^(-1)(RB). Alternatively would estimate the null and alternative models and use the usual F-stat.

Thanks @bashtage! If I remember correctly the usual F-stat wouldn't work with clustered variances though, right?

Yes.  In this case you need the quadratic form directly . I'll leave this
open since a helper function should be pretty easy and useful.
On Wed, Dec 19, 2018, 10:58 Simon<EMAIL_ADDRESS>wrote:

Thanks @bashtage https://github.com/bashtage! If I remember correctly
the usual F-stat wouldn't work with clustered variances though, right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bashtage/linearmodels/issues/184#issuecomment-448537098,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFU5RcTxtxIzM7XZhF0YwMvI-Mb59bq4ks5u6g3GgaJpZM4ZYSjQ
.

This has been fixed in master -- wald_test can be used for IV and panel models.


IMAGING-319: Correct length calculation in EXIF rewriter

I added comments to the JIRA ticket on this item at IMAGING-319
Unfortunately, it will be hard for me to create a JUnit test to specifically test this change without actually adding the user's original file (which is large) to our code distribution.
The following text shows the problem.
The users' test program read the data and then re-wrote it using the Commons Imaging library.  In the code below, his original File variable is named "source" and the rewritten version is named "result".
ImageMetadata metadata2 = Imaging.getMetadata(source);  // or result
JpegImageMetadata jpegMetadata2 = (JpegImageMetadata) metadata2;
TiffImageMetadata exif2 = jpegMetadata2.getExif();
String s2 = exif2.toString();
System.out.println("\n" + s2 + "\n");

The printout for the original EXIF block (with many elements removed) comes up as:
Exif:
ExifVersion: 48, 50, 51, 50
DateTimeOriginal: '2021:10:28 13:47:07'
DateTimeDigitized: '2021:10:28 13:47:07'
Unknown Tag (0x9010): '-05:00'
Unknown Tag (0x9011): '-05:00'
Unknown Tag (0x9012): '-05:00'
Unknown tag 0x9010 is fine.  But if you perform the same thing on this result, it comes up with the first character in Tag 0x9010 as a comma rather than a negative sign as shown below:
Exif:
    Unknown Tag (0x9010): , 05:00
    Unknown Tag (0x9011): '-05:00'
    Unknown Tag (0x9012): '-05:00'

The attached fix repairs the problem and causes the EXIF tag to be printed correctly.
Here's the full code for the test program:
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.Imaging;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata;
import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter;
import org.apache.commons.imaging.formats.tiff.TiffImageMetadata;
import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;

public class CommonsIssue319 {

  public static void main(String[] args) throws ImageReadException, IOException, ImageWriteException {
    File source = new File("iPhone12-geotag.JPG");
    File result = new File("editted-iPhone12-geotag.JPG");
    final ImageMetadata metadata = Imaging.getMetadata(source);
    final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
    final TiffImageMetadata exif = jpegMetadata.getExif();
    String s = exif.toString();
    System.out.println("\n" + s + "\n");
    TiffOutputSet outputSet = exif.getOutputSet();
    BufferedOutputStream bufferedOutputStream = new
    BufferedOutputStream(new FileOutputStream(result));
    new ExifRewriter().updateExifMetadataLossless(source,
    bufferedOutputStream, outputSet);
    bufferedOutputStream.flush();
    bufferedOutputStream.close();

    ImageMetadata metadata2 = Imaging.getMetadata(result);
    JpegImageMetadata jpegMetadata2 = (JpegImageMetadata) metadata2;
    TiffImageMetadata exif2 = jpegMetadata2.getExif();
    String s2 = exif2.toString();
    System.out.println("\n" + s2 + "\n");
  }

That was quite the detective work @gwlucastrig :clap: The change is really small, but I couldn't understand just reading the code. Going to have to re-read the JIRA and your description here :nerd_face: but it's looking good! Thanks Gary!

The PR was closed, but fixes a still present bug.


Revamp code

This PR does several things:

Not exposing TOKEN; TOKEN is assumed to be supplied from environment variable
Use Flask (http://flask.pocoo.org/) cause it's simpler and one of the most popular microframework in Python (I think)
Assumes that the bot will be deployed on Heroku

This PR needs some developer's guide so others can apply this changes on their local machine and make sure that this works. I'll update this later. Please remind me.

Nice. Looks good to me. Ran the code and it worked.


Touched up the script a bit

I fixed a couple of unquoted variables, added a root check as well as changed how the contents of the whitelist are redirected.

Excellent PR! @kyle95wm Merging...

@kyle95wm Can you please take a look at this:

I don't think that we need to display these domains...

Please see #32


mapbox token had wrong name

The token was named incorrectly in the example file, which led to a "missing mapbox token" error and a lot of troubleshooting. =)

Thanks!


Option to read full description

That would be good, if there would be an option to read the full description of the video (in both youtube-viewer, and gtk-youtube-viewer).
':i=' only prints the first few line of the description, and the gtk-youtube-viewer details window also shows only the first few line.
When downloading from gtk-youtube-viewer, youtube-viewer prints the full description of the video in the terminal.

Good suggestion!  (gtk-)youtube-viewer now retrieves the full description of each video.

is this not optional? seems a bit annoying when the description is long

When no extra-information is needed, the --no-video-info option can be used. (https://github.com/trizen/youtube-viewer/commit/7116c45de0ee4b39cf2e3b6e0dd0988025c02b6d)

thanks! but I was talking about gtk-youtube-viewer
I tried to add it in the last line of the config file as:
youtube_viewer_args                 => ["--no-video-info"]
with and without brackets and I still have full descriptions when I hover over a video on the list, any other option?

Currently, there is no equivalent option for gtk-youtube-viewer.


Entering a line view doesn't scroll to top

The line view often initializes not scrolled completely to the top, which obscures the ninja notice at the top of the line view.

I have included this fix in the PR for landing page badges https://github.com/davidlago/mbta-ninja/pull/79


Add CLion Instructions to Wiki

The kids are asking about how to use CLion instead of Eclipse. We need to update our documentation.
Hopefully this should be easy. I am willing to be the first guinea pig.

@jessesleeping Let me know if you have time to do this. You can work with @AllisonWang to test this.

I'm not sure whether there is an easy/built-in way to develop and debug with Clion on OSX.
I just found a thread for Clion about remote project development support: https://youtrack.jetbrains.com/issue/CPP-744
And it seems the issue is still open.

@AngLi-Leon and I were able to add all dependencies but we still failed to build the project on OSX even after we compiled the project using gcc instead of clang.
So one way to use CLion for now is to clone peloton inside the shared folder of VirtualBox /vagrant, and open the project on mac using CLion while compiling/building/testing the project inside the VM.

@AllisonWang What was the compilation error?

@apavlo I am thinking if this error is related to protobuf syntax version.
/Users/Allison/Desktop/peloton/src/include/common/logger.h:109:43: error:
format '%lu' expects argument of type 'long unsigned int', but argument 4 has
type 'google::uint64 {aka long long unsigned int}' [-Werror=format=]
   ::fprintf(LOG_OUTPUT_STREAM, __VA_ARGS__);

That's our code. That's weird. I think this should be fixable.

@AngLi-Leon has fixed it. https://github.com/cmu-db/peloton/wiki/Develop-and-Debug-with-CLion-on-macOS


fix normalize mean error bug

The normalize operator may produce wrong result when setting the mean arg with a single float val.

@mxnet-label-bot add [Operator, pr-awaiting-response]

Wow! How did we miss this?
Good find! Any test you wrote to verify this?

We are upgrading MXNet in our deployment env these days and notice some accuracy drop of our models. This bug seems to exist for at least a few months. Maybe we should add more tests to avoid similar bugs in the future.

Hi, @ChaiBapchya .
I think it is suitable to merge this PR : ) What do you think?

Hi @nicklhy , could you please add an unittest in test_image_normalize ?
Thank you!

@wkcn Just added some tests for scalar mean/std support in b952e91.

@nicklhy Great work! Thank you so much!


[Executive Perms] Orion

Executives lack the permission for the command '/thru' on Orion.

Be [Executive] rank
Use command /thru where applicable
See error

For /thru to function correctly.
Deathnight7976
Orion
The command functions as normal on both Titan and Atlas, Also mods have this command on Orion so likely just missed adding it to the [Executive] Rank on Orion.

This was fixed.


nixos/printing: set wantedBy to printer.target if startWhenNeeded

Upstream sets wantedBy to [ multi-user.target printer.target ] so old option would always start cups on multi-user.target

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] 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

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 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.

@matthewbauer You are listed as maintainers, requesting review.

I've tested nixosTests.printing-socket, which does startWhenNeeded = true and the cups service seems to behave as expected. The test uses hardware.printers.ensurePrinters to setup printers on boot, so cupsd is started and the printers are configured, but it's stopped soon afterwards. Also, if I remove ensurePrinters cups is never started.
How can I reproduce your issue?

Turns out

Note that for drop-in files, if one wants to remove entries from a setting that is parsed as a list (and is not a dependency), such as AssertPathExists= (or e.g.  ExecStart= in service units), one needs to first clear the list before re-adding all entries except the one that is to be removed. Dependencies (After=, etc.) cannot be reset to an empty list, so dependencies can only be added in drop-ins. If you want to remove dependencies, you have to override the entire unit.

https://man7.org/linux/man-pages/man5/systemd.unit.5.html
Setting WantedBy in the module is therefore meaningless, WantedBy is always [ multi-user.target printer.target ].


fvwm-crystal

I figured that this would excellent to have if you want an eye candy desktop that is also none power hungry such as unity and gnome.
The things is you'd edit the ~/.xinitrc file and add "exec fvwm-crystal" into the file, which I use nano for.
I just don't know how to add this into the script if neccesary

Please test your patches before submitting them.   There's no way the patch as submitted would actually work.


upsample2D TTNN op bringup for UNet

Is your feature request related to a problem? Please describe.
There are currently 8 unit tests I run for upsample2D for UNet. (4 different input shapes and testing them all on single core and multi-core: 4x2 = 8). Depending on which grid-size I pick, at least one of the multi-core tests fail.
: here is the link to the unit test in my branch
Describe the solution you'd like
add some simple heuristics to the unit test to help with deciding on the grid size (ideally for the entire model).
Please see attached the graph of the full model.
Additional context
Abhinav is already aware of this.
for a graph of the full model please ping me @dvartaniansTT

this is in main now.


Move Travis and Mitchel to emeritus.

Cleaning up OWNERS files of devs who were previously on the Googler test-infra oncall rotation, but are no longer actively developing.

/lgtm
/approve


Add CT verion check against talker requirements

I picked >=1.6.0a7 as the default because that is when the lists were changed to sets etc.

I don't like pulling in the packaging dependency when we just need to parse a basic version
Something like this should fit our needs
import pytest
from typing import Tuple

def parse_version(version_str: str) -> Tuple[int, int, int]:
    # Split the version string into segments and convert them to integers
    version_parts = version_str.split('.')
    parts = [int(seg) if seg.isdigit() else 0 for seg in version_parts[:3]]

    # Ensure exactly three elements in the resulting list
    parts.extend([0] * (3 - len(parts)))

    # Return a tuple with the first three elements from the parsed segments
    return (parts[0], parts[1], parts[2])

@pytest.mark.parametrize(
    "version_str, expected",
    [
        ("1.2.3", (1, 2, 3)),       # Test case with a standard version string
        ("0.0.1", (0, 0, 1)),       # Test case with segments containing only zeros except for the last segment
        ("10.5", (10, 5, 0)),       # Test case with only two segments
        ("2", (2, 0, 0)),           # Test case with only one segment
        ("<IP_ADDRESS>", (3, 7, 9)),     # Test case with more than three segments
        ("", (0, 0, 0))             # Test case for an empty string
    ],
)
def test_parse_version(version_str, expected):
    # Check if the output of parse_version matches the expected value for each test case
    assert parse_version(version_str) == expected

Tuples can then be compared with <,> easily

I don't like pulling in the packaging dependency when we just need to parse a basic version Something like this should fit our needs

Given the current importance of the 'a' parsing that out to a 4 part number seems sensible?

You're right, I forgot about the alpha releases, those need to sort before the normal release. Then we'll keep the packaging dependency.


refactor(biome_analyze): derive Applicability from FixKind

Summary

FixKind and Applicability line up one to one, and need to remain in sync. This adds RuleMetadata::to_applicability() and a impl From<FixKind> for Applicability.
I'll follow up this PR with another codemod to change all the rules to call this function instead.

Related to: #2799
Test Plan

It compiles.

This failed on main: https://github.com/biomejs/biome/actions/runs/9114244240/job/25057688478

Taking a look now.


Atlassian ASAP Authentication Support

This PR adds a new authentication dropdown "Atlassian ASAP" that takes 5 fields: issuer, subject, audience, key id and private key. Input from those fields will be passed to jwt-authenticator which gives a JWT token to be embedded on the request as the Authorization header.
As part of the work a new npm dependency to jwt-authenticator is added.
See also ASAP spec here: https://s2sauth.bitbucket.io.
Closes #565

Note about private key field
The example shown in the placeholder is multi-line PEM format which doesn't work very well with nunjucks environment data (each newline has to be replaced with escaped '\n'), but jwt-authentication also support single line data-uri format (see export-as-data-uri in asap-cli). I've added a help text tooltip next to the field label with this info.
A possible future improvement is to ask the user whether they want to copy-paste the private key, or point directly to the file (maybe provide a select dropdown in the place of the private key label).

Thanks for this! I will take a closer look this week.

@gerrytan would this help with the multi-line private key issue? https://github.com/getinsomnia/insomnia/pull/557

Thanks @gschier!, I'll take a look at your suggestion on multi-line private key issue some time next week.

@gschier now I understand what you mean with the file template tag, thanks! Yes it would solve the problem. I'll raise another PR to reword the help tooltip to "Press CTRL+Space to use File Template Tag to read the private key directly from a file". What do you think?


Error during build depthai-core cross-compile with the openWRT toolchain

Hello, I'm trying to cross-compile depthai-core using the OpenWRT toolchain : mipsel_24kc_gcc-7.3.0_musl. but It fails with error :
-- Found Backward: /home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward/Source
-- Configuring done
-- Generating done
-- Build files have been written to: /home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward/Build/Backward-Release-prefix/src/Backward-Release-build
[ 75%] Performing build step for 'Backward-Release'
Scanning dependencies of target backward_object
Scanning dependencies of target backward
[ 33%] Building CXX object CMakeFiles/backward_object.dir/backward.cpp.o
[ 66%] Building CXX object CMakeFiles/backward.dir/backward.cpp.o
In file included from /home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward/Source/backward.cpp:36:0:
/home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward/Source/backward.hpp:262:10: fatal error: execinfo.h: No such file or directory
 #include <execinfo.h>
          ^~~~~~~~~~~~
compilation terminated.
In file included from /home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward/Source/backward.cpp:36:0:
/home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward/Source/backward.hpp:262:10: fatal error: execinfo.h: No such file or directory
 #include <execinfo.h>
          ^~~~~~~~~~~~
compilation terminated.
CMakeFiles/backward_object.dir/build.make:62: recipe for target 'CMakeFiles/backward_object.dir/backward.cpp.o' failed
make[5]: *** [CMakeFiles/backward_object.dir/backward.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/backward_object.dir/all' failed
make[4]: *** [CMakeFiles/backward_object.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....
CMakeFiles/backward.dir/build.make:62: recipe for target 'CMakeFiles/backward.dir/backward.cpp.o' failed
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/backward.dir/all' failed
make[5]: *** [CMakeFiles/backward.dir/backward.cpp.o] Error 1
make[4]: *** [CMakeFiles/backward.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make[3]: *** [all] Error 2
CMakeFiles/Backward-Release.dir/build.make:114: recipe for target 'Backward-Release-prefix/src/Backward-Release-stamp/Backward-Release-build' failed
make[2]: *** [Backward-Release-prefix/src/Backward-Release-stamp/Backward-Release-build] Error 2
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Backward-Release.dir/all' failed
make[1]: *** [CMakeFiles/Backward-Release.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
[hunter ** FATAL ERROR **] Build step failed (dir: /home/apps/.hunter/_Base/cb0ea1f/0b78939/0fb33dc/Build/Backward
[hunter ** FATAL ERROR **] [Directory:/home/apps/zulfikar/depthai-core/cmake]
------------------------------ ERROR -----------------------------
    https://hunter.readthedocs.io/en/latest/reference/errors/error.external.build.failed.html

CMake` Error at /home/apps/.hunter/_Base/Download/Hunter/0.23.322/cb0ea1f/Unpacked/cmake/modules/hunter_error_page.cmake:12 (message):
Call Stack (most recent call first):
  /home/apps/.hunter/_Base/Download/Hunter/0.23.322/cb0ea1f/Unpacked/cmake/modules/hunter_fatal_error.cmake:20 (hunter_error_page)
  /home/apps/.hunter/_Base/Download/Hunter/0.23.322/cb0ea1f/Unpacked/cmake/modules/hunter_download.cmake:623 (hunter_fatal_error)
  /home/apps/.hunter/_Base/Download/Hunter/0.23.322/cb0ea1f/Unpacked/cmake/modules/hunter_add_package.cmake:53 (hunter_download)
  cmake/depthaiDependencies.cmake:21 (hunter_add_package)
  CMakeLists.txt:164 (include)
-- Configuring incomplete, errors occurred!
See also "/home/apps/zulfikar/depthai-core/build/CMakeFiles/CMakeOutput.log".

I use cmake version 3.10.2, c version mipsel-openwrt-linux-gcc (OpenWrt GCC 7.3.0 r0-6459074) 7.3.0, and c++ version mipsel-openwrt-linux-g++ (OpenWrt GCC 7.3.0 r0-6459074) 7.3.0
here you can check the full log :

Build Log    =  https://pastebin.com/hgdQEwda
Cmake Log = https://pastebin.com/q1emijRh

Do you have any suggestions on what to do?

@zulfikaryh
Disable Backward (stack printing library) using -D DEPTHAI_ENABLE_BACKWARD=OFF

@zulfikaryh
Did that resolve your issue? Feel free to open it back up if that's not the case.


Create a Preference Pack for ProDark

See https://github.com/dulouie/FreeCAD-modern-config/issues/6
ref: https://github.com/FreeCAD/FreeCAD-addons/issues/201

@turn211 could you allocate any time to get this done before the v0.20 release? (possibly in a week or 2?)

Done.

https://github.com/turn211/ProDarkThemePreferencePack Don't know if it works. Can't test it by installing manually. https://forum.freecad.org/viewtopic.php?f=34&t=68771&sid=7fdbe3ef5a9fe6f05e8def16651f5328

Complete. https://forum.freecad.org/viewtopic.php?f=34&t=68817&sid=a221b07af184aae0fee5142086d4e988


This PR goes with https://github.com/gradle/gradle/pull/3756


Please allow users to customize the config/db/data/log files path

There are too many dot files under my $HOME.
Please allow users to customize the config/db/data/log files path, so I can put them into $HOME/.config, $HOME/.cache.

You can set the config folder using an environment variable $WAKATIME_HOME:
https://github.com/wakatime/wakatime/blob/ff1c30807ed420649855c53a740c161962962c56/wakatime/configs.py#L31


"1 package failed" when i do catkin build

Hi, when i do " catkin build --save-config -i --cmake-args -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=430 -DENABLE_NVIDIA_EXT=YES",there shows 1 package failed
here is the specific error:
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake]   Target "genvideo" links to target "Boost::serialization" but the target was
[surfel_mapping:cmake]   not found.  Perhaps a find_package() call is missing for an IMPORTED
[surfel_mapping:cmake]   target, or an ALIAS target is missing?
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake]   Target "genvideo" links to target "Boost::thread" but the target was not
[surfel_mapping:cmake]   found.  Perhaps a find_package() call is missing for an IMPORTED target, or
[surfel_mapping:cmake]   an ALIAS target is missing?
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake]   Target "genvideo" links to target "Boost::date_time" but the target was not
[surfel_mapping:cmake]   found.  Perhaps a find_package() call is missing for an IMPORTED target, or
[surfel_mapping:cmake]   an ALIAS target is missing?
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake]   Target "genvideo" links to target "Boost::regex" but the target was not
[surfel_mapping:cmake]   found.  Perhaps a find_package() call is missing for an IMPORTED target, or
[surfel_mapping:cmake]   an ALIAS target is missing?
and my OPENGL version is:
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.5.0 NVIDIA 415.27
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 415.27
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 415.27
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,
What's the problem？Could you give me some advice?
Thank you.

It seems that boost is the problem. You have to ensure that libboost (filesystem, system, and literal_cast) is available.
Let me know if the problem persist.
Which Ubuntu version are you using?

It seems that boost is the problem. You have to ensure that libboost (filesystem, system, and literal_cast) is available.
Let me know if the problem persist.
Which Ubuntu version are you using?

Thanks for your reply. My Ubuntu version is 16.04
I have installed libboost-all-dev, should i reinstall it? i am new to ubuntu, so i'm not sure how should i do for this issue :(

Hmmm. Never encountered such error. So currently I‘m also clueless. I will have to have a look what the error specifically means.
Sorry, I will have a look.

You should now try to pull again and try to compile. @tano297 run into similar problems and luckily fixed them.
Let me know if you still have problems compiling.

You should now try to pull again and try to compile. @tano297 run into similar problems and luckily fixed them.
Let me know if you still have problems compiling.

Thank you, it goes well.


Override base url

Add the ability to override baseURL in karma.systemjs.config to support case when the
source code base path and karma base path are different.
See the side-js sample in
https://github.com/unional/karma-systemjs-sample.
That code needs override-baseURL and relative-URL (already merged) PR to work

This PR accidentally includes the fix-test-for-window PR. Sorry about that.
Regarding this PR, I'm actually thinking maybe what specified in karma.systemjs.config should take precedent to what's in the config file, so a better way to make this work may be:
_.merge(kSystemjsConfig.config, readConfigFile(cfgPath), kSystemjsConfig.config);

Oh damn, I can't believe I let that slip.
Thank you for the PR!


Handle escapes in rfc7230 quoted-strings without allocating

There's a big fat std::string in <beast/http/impl/rfc7230.ipp>

it would be possible to use a string_view or sth, but the most efficient way is probably to reuse the string, so it ideally becomes one allocation.

no one has complained

is 2539 a breaking api change?


Mindmap automatically opened?

Hi!
I believe it's supposed that whenever you click on "Show the answer" the mindmap automatically opens fully? But is there a way to prevent it from opening? I mostly learn by opening the structure, so it would really save me some time if I didn't have to close it first.
Or, if automatic closing can't be made an option, is there a way to close all the maps with a single click?

I second this. Having a Mindmap collapsed/folded by default would be great.
Markmap actually has a feature to set this for every brach called magic comments. However they don't seem to work here


Update Composer dependencies (2020-04-11-00-03)

Visual regression test passed!
View the visual regression test report


Xamarin.Forms - Error placeholders not working

Error Placeholders not working. Don't have time now to check it. I really don't know why it isn't working. It's handled the same way as Loading Placeholders (and they work fine!). You can test it in samples I uploaded: https://github.com/molinch/FFImageLoading/pull/43 (Placeholders button)

Thanks @daniel-luberda it will be easier to spot what's going on

Ups, didn't add csproj files to commit, so you have to manually add "error.png" and "loading.jpg" to you project files. I'll make a commit for this.

Thanks! What a typo! :) I didn't see that!

Still not working for me, even after https://github.com/molinch/FFImageLoading/commit/34a0a98eef19f1b6ad3f3e79f22309d5675086ea

It works fine. If you want to see it faster then use something else than notexisting.com your website doesn't respond

Btw there are issues with the Xamarin.Forms renderer: in the placeholder example, when you tap a link it does 2 loading request. I tried to debug it and SetImage is called twice. Could you have look?

Yes, I'll check it out and let you know

How did you check if it's called twice? Did you check Application output? If you use System.Diagnostics.Debug.WriteLine then it always generate two lines (one blue and one black). Is it that?

If you set a breakpoint in SetImage you will see that it's called twice.
Basically what happens is that 1st call starts, then 2nd call arrives, and since it uses the same native control we cancel the 1st one (this makes sense).
Therefore why SetImage is called twice I have no idea... :|

Yes, I noticed it. I'll try to find the issue. Thanks.

Found the issue!  Can you check it it's the same on iOS?

It should be ok now: https://github.com/molinch/FFImageLoading/pull/47

FYI you might be interested to look this ModernHttpClient issue: https://github.com/paulcbetts/ModernHttpClient/issues/184
That is why on Android the error placeholder is displayed after 1 minute... On iOS it's after 15s.

Yes, that's what I was experiencing.


Can't use a record as underlying type without implementing IComparable

Describe the bug
When trying to use a simple record as the underlying type for my enum:
using Intellenum;

public record Size(int Width, int Height, string Unit);

[Intellenum<Size>]
public partial class AllowedSizeEnum
{
    public static readonly AllowedSizeEnum Something = new(new(1, 1, ""));
}

I get an error
Interface member 'int System.IComparable.CompareTo(object?)' is not implemented
I think there's a bug in the generator, AllowedSizeEnum should only need IComparable if its underlying type does.
Steps to reproduce
See code above
Expected behaviour
The code example above should build.

Thanks for the feedback @kpietraszko . This is now implemented and in release 1.0.5

@SteveDunn Thanks! However, it seems that the publish to NuGet failed.

Oh no! Thanks for letting me know. I'll look at that shortly!


Enable Address Sanitizer, etc., in CI

Also testing cross-fork PRs, and running CI in the MGN repo before bothering anyone with reviews.
#947

@TimSylvester Would you mind adding these files as a dependency to the relevant GitHub Actions workflow? (ios-ci)

@louwers I'm not familiar with Actions, but I can give it a shot.  Which files, though, the .xcscheme?

A glob pattern here
https://github.com/maplibre/maplibre-gl-native/blob/main/.github/workflows/ios-ci.yml#L10
And here:
https://github.com/maplibre/maplibre-gl-native/blob/main/.github/workflows/ios-ci.yml#L30
Docs:
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore
You can use a wildcard.

platform/ios/platform/ios/ios.xcodeproj will be included by platform/ios/** though, and the actions did run when I created the PR.

My bad, they already ran.


content-type does not match with now.json config and response headers

Im trying to serve compressed assets using now dev.
My now.json file looks like this:
{
  "name": "graph-spike",
  "version": 2,
  "builds": [
    { "src": "public/**/*", "use": "@now/static" },
    { "src": "build/**/*", "use": "@now/static" },
    { "src": "dist/index.js", "use": "@now/node" }
  ],
  "routes": [
    { "src": "/static/js/(.*)", "dest": "/build/js/$1.br",
      "headers": {
        "Content-Type": "text/javascript",
        "Content-Encoding": "br",
        "Cache-Control": "public, max-age=31557600"
      }
    },
    { "src": "/static/css/(.*)", "dest": "/build/css/$1.br",
      "headers": {
        "Content-Type": "text/css; charset=utf-8",
        "Content-Encoding": "br",
        "Cache-Control": "public, max-age=31557600"
      }
    },
    { "src": "/static/(.*)", "dest": "/build/$1",
      "headers": {
        "Cache-Control": "public, max-age=31557600"
      }
    },
    { "src": "/service-worker.js", "dest": "/build/service-worker.js" },
    { "src": "/(.*)", "dest": "/dist/index.js" }
  ]
}

This is the reponse headers im getting. I'm expecting text/css but found application/octet-stream.

Hello,
Please reach out to<EMAIL_ADDRESS>with a repository so we can assist you better. Basically, Now will always serve a compressed version if the client supports it, so there is no need to set any headers manually.


[ASTWalker] Walk NominalTypeDecl parts in source order

When walking a NominalTypeDecl, we were walking its inherited/conformed-to TypeLocs after any generic param requirements in the where clause. This was breaking syntactic rename which assumes source order when matching against given locations from the index.

Resolves rdar://problem/35016463

@swift-ci Please test


[Meshery UI] Move publish modal into info modal

Current Behavior

There is redundant modal for publish/info modal
Desired Behavior
Merge the two modal
Implementation

Acceptance Tests

Mockups

Contributor Guides and Handbook

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

I would like to work on the issue


BUG Foxy XML data feed does not represent product_total accurately

Describe the bug
When parsing product_total from the xml data feed sent by Foxy, it was discovered that the value takes into account discounts when it should not. This is ultimately in the Foxy side and can be remedied on the website by adjusting the feed parser to re-fetch the order data via the API.

This may have been updated by Foxy recently and should be revisited.


Add support for spherecast

From forum thread: https://forum.playcanvas.com/t/ability-to-use-spherecast/13310/3
It would be great to add some form of sphere casting if the current Ammo,js API allows it.

I would also like to see this feature in PlayCanvas because I could use it in different situations.

Yes I would love this feature as well as it would prevent me from having multiple raycasts

This would be a great feature as it would make it easier to improve click accuracy on mobile devices instead of raycasting.

@simonbq the Ammo version that PC currently only has partial support for it. I made an extension for convex shapes sweep tests. You can grab a later version of Ammo from there too, which enables full support.
https://forum.playcanvas.com/t/playcanvas-physics-extension/13737

@LeXXik Cheers, I'll check it out. I'm mainly interested in it being added to the hosted version of PlayCanvas though.

This will be useful for a camera collision system, it will make it smoother and not punch through certain size gaps.

@yaustar @willeastcott I could add a support for convex sweeptests, but the current Ammo version needs to be updated.

@LeXXik What would the newly introduced PlayCanvas API be? I think it's fine if the ammo build needs to be updated. You'd just check for the necessary functions and if they're not there, just print a warning.

Well, we already have the following raycast methods on rigidbody component system:
app.systems.rigidbody.raycast(...);
app.systems.rigidbody.raycastAll(...);

I do think they belong under collision component system, though, as rigid bodies are shapeless and not able to collide. It is a collision component that gives body a shape, mass, and other properties that rays can detect. In fact, own physics system would be even better, which would handle casts in the physics world of the current backend, but that can be left for a better day. Nevertheless, we can add similar:
app.systems.rigidbody.shapeCast(...);

As with raycast it would take starting position and end position of the cast, as well as required shape that would be used for the sweep test. It can optionally take starting and final rotation quaternions of the shape.
Because the shape is an Ammo object, I did have convenience methods, like .sphereCast() or .boxCast(), etc, which would create the shape for the user and destroy it when finished. To simplify the API, we can add enums, like pc.SHAPECAST_SPHERE that shapeCast() method would take with optional params that describe it, like sphere shape radius, for example, etc.
I will make a draft PR.


Feature/extract amount input

Work in progress, seeking comments right now.

[x] finish test suite
[x] simplify code
[x] add some comments
[x] get feedback
[x] apply component to the other form as well
[x] branch needs to be renamed
[x] squash commits and commit with nice messages
[ ] modify to support mili-satoshis

@JimmyMow added the input into the PayForm, addressed code style issues

The work from this PR was adapted and merged in https://github.com/LN-Zap/zap-desktop/pull/705


vxlan support

Hey @ptylenda,
I see in the README you say that vxlan support is possible with this playbook, but I'm not entirely clear what is meant by "requires changes in network deployment file and installation of CNI plugins on Windows". I've seen https://github.com/Microsoft/SDN/tree/master/Kubernetes/flannel/overlay and have been trying to get it to work without much luck, so hoping you might have some clues.
Right now I can't seem to get inbound ip masquerading to work, packets from in the container go out but return packets aren't being routed back in as far as I can tell.
Ben

Nevermind! I still can't get ping <IP_ADDRESS> to work for some reason, but I can get regular curl requests to work to both the internet and other (Windows) pods.

@benmoss yes, for external connectivity please use TCP/UDP protocol. ICMP isn't supported today!


Implement a backend service that tells the frontend that the guessing phase has started and the timer should start counting down.

03033dfc6162c7b1f9b6cf970fc9e9b629c360a0


DxMap in dynamic mode is just grey (no map shows)

To help us process the issue more efficiently, please provide the following information:

Specify the version of the devextreme-angular and devextreme packages you are using.
devexteme version: latest
devextreme-angular version: latest

Specify the type of the issue (check one with "x"):
[x] bug Report
[ ] feature request
[ ] support inquiry

https://js.devexpress.com/Demos/WidgetsGallery/Demo/Map/ProvidersAndTypes/Angular/Light/
The dynamic map is just grey both on my site and on the demo page above.  I don't see any errors in the console in either case.  What's going on?

@jakehockey10
It is a DevExtreme known issue. See this ticket for more details.


Replace Guava by JDK (Partly)

Replace Guava by JDK (Partly)
https://github.com/wiremock/wiremock/issues/2111
Submitter checklist

[ ] Recommended: Join WireMock Slack to get any help in #help-contributing or a project-specific channel like #wiremock-java
[x] The PR request is well described and justified, including the body and the references
[x] The PR title represents the desired changelog entry
[x] The repository's code style is followed (see the contributing guide)
[x] Test coverage that demonstrates that the change works as expected
[ ] For new features, there's necessary documentation in this pull request or in a subsequent PR to wiremock.org

Thanks!
Thinking we should introduce an ArchUnit rule to prevent further use of Guava so that we're not playing whack-a-mole forever.


Substitutor for bootstrap method [...] was not found

When compiling, I am receiving this error message:
ERROR: <!> Substitutor for bootstrap method java.lang.invoke.LambdaMetafactory.metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; was not found
    at java.lang.String.<clinit>(TString.java:36)
    at java.lang.String.<init>
    at java.lang.Class.getClass(TClass.java:76)
    at java.lang.Object.getClass(TObject.java:221)
    at java.lang.Object.toString(TObject.java:241)
    at java.lang.Object.toString(TObject.java:241)
    at java.lang.Object.toString(TObject.java:241)
    at java.lang.Object.toString(TObject.java:241)
    at java.lang.Object.toString(TObject.java:241)
    at java.lang.Object.toString(TObject.java:241)
    ...

From looking at other issues, I noticed that this error message occurred when not having teavm-classlib-<version>.jar in the dependencies (for maven). Sadly I am not using maven, so I have been trying to look for a solution on my own, without luck.
I wrote my own compiler class (looking at the source code of teavm-cli when I was stuck) that is compiled to a jar file together with the following jar files:
gson-2.8.6.jar
joda-convert-1.2.jar
joda-time-2.7.jar
jzlib-1.1.3.jar
teavm-classlib-0.7.0.jar
teavm-core-0.7.0.jar
teavm-interop-0.7.0.jar
teavm-jso-0.7.0.jar
teavm-jso-apis-0.7.0.jar
teavm-jso-impl-0.7.0.jar
teavm-metaprogramming-api-0.7.0.jar
teavm-metaprogramming-impl-0.7.0.jar
teavm-platform-0.7.0.jar
teavm-tooling-0.7.0.jar

As you can see, classlib is included in the libraries and also in the final jar file that gets executed.
What do I have to change to make this work?
Do I have to load the classlib jar as project source?
Or do I maybe have to add the classlib-jar to TeaVMTool?
Looking at the maven plugin source code or the cli source code didn't really help answering these questions...
I will try adding it as a JarSourceFileProvider and keep you updated.
Edit: adding teavm-classlib-0.7.0.jar doesn't seem to solve anything...

This is definitely an issue with teavm-classlib not available in the classpath, it has nothing to do with Maven specifics. Without knowing your exact setup I can't tell anything, you should either share it or debug yourself. You can start by putting breakpoint in TeaVM.installPlugins method. Is it called at all? If it is, how does it look for JCLPlugin and why it fails to do it?

I got it working! finally! It finally worked by not using a .jar file, but instead just using IntellIJ to run it. I've set the classloader correctly and set a main class, and now everything works as intended. Thank you for creating TeaVM and taking you time to help me.


Pair jackknife

Very very simple change to the code. I've implemented the ability to calculate jackknife covariances using 'galaxy' and 'pair' jackknives. See here: https://cdcvs.fnal.gov/redmine/projects/deswlwg/wiki/50deg^2_patch_covariance
But in short the difference is as follows: with 'galaxy' jackknives, if one of the galaxies of a set of pairs of objects falls into the jackknife region, it is excluded. With 'pairs', we only exclude if both galaxies are in the region.
From some preliminary tests on a simulated dataset, it looks like this doesn't make much of a difference for our purposes, but I figured I would include it :)

Hearing no comments for a pretty minor change, I'm going to go ahead and merge this in.


Issues with adding firebase through rome

Getting these error when adding firebase through "Rome". Only difference that I see Rome doesn't create an umbrella framework called "Firebase"
There is no issue if I add these frameworks as cocoapods, which is undesirable.

@paulb777 : thanks a lot quick reply. I followed all the all the steps. It seems it doesn't have any effect. I have the same errors.

@alokc83 Based on googling that error message, it might be related to ./Rome/FirebaseCoreDiagnostics.framework/Modules/module.modulemap not having an umbrella header, but I'm not able to reproduce the error.  What version of Xcode are you building with?  Does adding an umbrella header to that modulemap file make a difference?

@paulb777 : I am using Xcode 10.1 and Cocoapods 1.5.2

I was able to add Firebase with Rome through XCodegen as my project builder. but looking at the files I'm sure you should be able to add them in manually with the given configuration too
https://github.com/firebase/firebase-ios-sdk/issues/3432


Q: Build a contributors chart from a database

Overview
Talk to Hack for LA developers about how to build an org chart out of the outline we are creating.
Resources
outline of all orgs

@ddkbky is working on an excel spreadsheet and will upload to googledocs when finished and link here.

Regan's recommendation for geo api https://pypi.org/project/geocoder/ to help build the physical location

Refer to this to communicate density/ activity.


lr-yabasanshiro - works best for my RGB30, but not installed

Describe the Issue (If applicable)
The wiki states that lr-yabasanshiro is the default core for Saturn, but the actual default is the standalone yabasanshiro. The lr-yabasanshiro core is not installed for retroarch 64bit and the 32bit version freezes after loading. I can manually install the lr-yabasanshiro
core in retroarch 64, load the roms using that core from within retroarch and the performance is much better than lr-yabause and yabasanshiro standalone. 45fps -> 60fps in Rayman.
However, I cannot set lr-yabasanshiro as the default emulator core for saturn, no option in the ES menu.
What device are you using?
RGB30
What version of ArkOS are you on?
latest OTA, can't remember - at work right now

Really? The 64bit version works better than the standalone or 32bit version?  That's news to me.  I can have that added as option for Saturn in today's update.

Yes, very strange. I'll give it some more tests this evening and report back.
I was testing using Rayman with frameskip off and loading the first level
From memory:
yabasanshiro standalone: 42fps
32bit lr-yabause 45fps
32bit lr-yabasanshiro crash and returns to ES after bios screen
64bit lr-yabause 45fps
64bit lr-yabasanshiro 58fps

It may be?  I just used bin/cues or iso files

This has been accommodated with today's update.

@mrplow which core version are you running? ..and do you have some settings enabled that make things work maybe?
Im seeing slightly different results, where retroarch with yabasanshiro isnt giving me particularly good results on RGB30. Everything stutters.
Checking information in the menu shows:
1.17.0 - YabaSanshiro (v3.4.2 7513c8459)
However... Now on my RGB30 with Arkos with these settings:
Emulator: Standalone-Bios
Core: Auto (only option)
Governor: Performance

I seem to get YabaSanshiro 1.9.0 (info from menu through select button).
And for the first time ever, Saturn games are finally playable for me 🚀
Im getting full speed Daytona, Sega Rally, and Street fighter zero 3.
I've updated all retroarch cores, but for whatever reason I'm still on yabasanshiro 1.17, Is there some way to force it to 1.19?

@presidenten using retroarch64 with the yabsanshiro 1.17.0 too
I didn't fool around with any settings. I have the bios loaded but I don't know if that makes a difference or not
I have no idea why mine is running faster in retroarch than standalone.
I'm only running very low requirement games, elevator action 2,  mega man 8, Rayman... Any suggestions for others that might play well are welcome 😄
Though this should probably move to a discussion rather than this closed issue. But I think discussions are disabled in this repo.


Block WebSocket requests for direct Game actions (non-powerup related) from all observing players

Hey guys, I think we finished this task two weeks ago as part of bug-fixes in part one. Can one of you @NicSchuler @EliasWJMuller @hs-kim1990 confirm? If true, we can mark this as done.