Fix product and patterns selection#2946
Conversation
e67b2eb to
e708da6
Compare
* At this point, we do not know whether a pattern was removed by the user or simply not selected, so we need to always send the whole list.
3e58f59 to
813126d
Compare
* Unselecting an auto-selected pattern does not seem to work.
813126d to
29eaf28
Compare
| utoipa::ToSchema, | ||
| PartialEq, | ||
| Eq, | ||
| Hash, |
There was a problem hiding this comment.
NP: I prefer to have entries alphabetically ordered, as it is easier to read. I would apply it to all parts that do not depend on order.
|
|
||
| /// Turns the list of resolvables into a vector. | ||
| /// | ||
| /// FIXME: return an interator instead. |
There was a problem hiding this comment.
👍 as probably hash set is not needed. I kind of expect that common Vector will be enough.
There was a problem hiding this comment.
A HashSet is used in the tests to make things easier. We could use a Vec but you need to ensure the order (using the name and the type, for instance).
There was a problem hiding this comment.
well, in general I would try to not affect production code by tests...having ordered Vec is ok for me. If HashSet is needed only in test, then test should construct it from vector.
There was a problem hiding this comment.
Well, I do not have a strong opinion about that, if the API can be improved and used in tests, it is fine. For instance, we do it for instance everytime we implement PartialEq or Eq for tests.
Anyway, I am using a Vec now.
| let result = zypp.select_resolvable(name, r#type.into(), reason); | ||
|
|
||
| if let Err(error) = result { | ||
| if optional { |
There was a problem hiding this comment.
well, it can cloak real errors. Ideally we should for optional at first ask if resolvable is available ( not available now in agama-zypp ) and skip if not.
so ideally something like
if optional && !zypp.resolvable_available(name, r#typ.into()) {
return issues;
}
|
|
||
| if (product?.id === undefined && !isBusy && location.pathname !== PRODUCT.root) { | ||
| console.log("Navigating to the product selection page"); | ||
| return <Navigate to={PRODUCT.root} />; |
There was a problem hiding this comment.
Why it can be removed? where redirect to product selection happen?
There was a problem hiding this comment.
ah, it is below in overview page. Not sure which location I like more.
There was a problem hiding this comment.
I will discuss with David. Anyway, we want to stop using App as a "router". Most probably the redirection should be in the router itself, but I do not think we are at that point.
| export type { Proposal, PatternsSelection, SelectedBy }; | ||
| export type { Proposal, PatternsSelection }; | ||
|
|
||
| export { SelectedBy }; |
There was a problem hiding this comment.
why now enum is no longer exported as type?
There was a problem hiding this comment.
I would say export type is just for types. I tried and it works just fine.
* It improves the quality of the auto-generated code.
## Problem Agama allows to set the hostname during the installation. We need to expose this functionality using the new API and adapt the UI accordingly. - https://trello.com/c/tuQh4U24/5445-adapt-the-hostname-api-to-the-new-approach ## Solution Added hostname service to the backend. The UI has been adapted allowing to set the hostname using the new API but the registration check is missing because product registration is still not adapted in the UI (see #2946 for example). ## Todo - [X] New hostname service is defined - [x] UI is adapted (registration check is pending until implemented) ## Testing - *Tested manually*
Merge the new HTTP API. Each PR has been already reviewed, so it should be safe to merge it. * #1829 * #2508 * #2772 * #2826 * #2848 * #2860 * #2863 * #2866 * #2867 * #2869 * #2870 * #2871 * #2872 * #2873 * #2874 * #2875 * #2876 * #2877 * #2880 * #2881 * #2882 * #2884 * #2885 * #2886 * #2891 * #2892 * #2893 * #2894 * #2895 * #2896 * #2897 * #2898 * #2899 * #2900 * #2901 * #2902 * #2903 * #2904 * #2908 * #2909 * #2910 * #2912 * #2913 * #2914 * #2915 * #2916 * #2917 * #2918 * #2920 * #2921 * #2923 * #2924 * #2926 * #2928 * #2929 * #2930 * #2933 * #2934 * #2935 * #2936 * #2938 * #2939 * #2942 * #2943 * #2944 * #2945 * #2946 * #2947 * #2948 * #2950 * #2951 * #2952 * #2954 * #2955 * #2956 * #2957 * #2958 * #2959 * #2960 * #2961 * #2963 * #2964 * #2965 * #2967 * #2968 * #2969 * #2970 * #2971 * #2972 * #2974 * #2975 * #2977 * #2978 * #2980 * #2982 * #2983 * #2984 * #2988 * #2989 * #2991 * #2992 * #2993 * #2994 * #2995 * #2996 * #2997 * #2999
Prepare to release version 19. * #1829 * #2508 * #2772 * #2818 * #2826 * #2848 * #2860 * #2863 * #2864 * #2866 * #2867 * #2869 * #2870 * #2871 * #2872 * #2873 * #2874 * #2875 * #2876 * #2877 * #2880 * #2881 * #2882 * #2884 * #2885 * #2886 * #2891 * #2892 * #2893 * #2894 * #2895 * #2896 * #2897 * #2898 * #2899 * #2900 * #2901 * #2902 * #2903 * #2904 * #2908 * #2909 * #2910 * #2912 * #2913 * #2914 * #2915 * #2916 * #2917 * #2918 * #2920 * #2921 * #2923 * #2924 * #2926 * #2928 * #2929 * #2930 * #2933 * #2934 * #2935 * #2936 * #2937 * #2938 * #2939 * #2942 * #2943 * #2944 * #2945 * #2946 * #2947 * #2948 * #2949 * #2950 * #2951 * #2952 * #2954 * #2955 * #2956 * #2957 * #2958 * #2959 * #2960 * #2961 * #2963 * #2964 * #2965 * #2967 * #2968 * #2969 * #2970 * #2971 * #2972 * #2974 * #2975 * #2977 * #2978 * #2980 * #2981 * #2982 * #2983 * #2984 * #2988 * #2989 * #2990 * #2991 * #2992 * #2993 * #2994 * #2995 * #2996 * #2997 * #2998 * #2999 * #3000 * #3001 * #3002 * #3004 * #3005 * #3006 * #3007 * #3008 * #3009 * #3011 * #3012 * #3013 * #3014 * #3015 * #3016 * #3018 * #3019 * #3020 * #3021 * #3022 * #3023 * #3024 * #3025 * #3026 * #3027 * #3028 * #3029 * #3030 * #3031 * #3033 * #3034 * #3035 * #3036 * #3037 * #3039 * #3040 * #3041 * #3042 * #3043 * #3044 * #3045 * #3046 * #3047 * #3048 * #3049 * #3050 * #3051 * #3052 * #3053 * #3054 * #3055 * #3056 * #3057 * #3058 * #3060 * #3061 * #3062 * #3063 * #3064 * #3065 * #3066 * #3067 * #3068 * #3069 * #3070 * #3071 * #3072 * #3073 * #3074 * #3075 * #3076 * #3077 * #3078 * #3079 * #3086 * #3087 * #3088 * #3089 * #3090 * #3091 * #3092 * #3093 * #3094 * #3095 * #3096 * #3097 * #3098 * #3099 * #3100 * #3101 * #3102 * #3103 * #3104 * #3105 * #3106 * #3107 * #3108 * #3109 * #3110 * #3112 * #3113 * #3114 * #3115 * #3116 * #3117 * #3118 * #3119 * #3120 * #3122 * #3123 * #3124 * #3127 * #3128 * #3129 * #3130 * #3131 * #3133 * #3134 * #3135 * #3136 * #3137 * #3138 * #3139 * #3140 * #3141 * #3142 * #3143 * #3144 * #3145 * #3146 * #3147 * #3148 * #3149 * #3150 * #3151 * #3152 * #3153 * #3154 * #3155 * #3157 * #3158 * #3159 * #3160 * #3161 * #3162 * #3163 * #3164 * #3165 * #3166 * #3167 * #3168 * #3169 * #3170 * #3174 * #3175 * #3176 * #3177 * #3178 * #3179 * #3181 * #3182 * #3184 * #3185 * #3186 * #3188 * #3189 * #3190 * #3191 * #3192 * #3194 * #3195 * #3196 * #3197 * #3198 * #3199 * #3200 * #3201 * #3202 * #3203 * #3205 * #3206 * #3208 * #3209 * #3210 * #3213 * #3214 * #3215 * #3216 * #3217 * #3218 * #3219 * #3220 * #3222 * #3223 * #3224 * #3225 * #3226 * #3227 * #3228 * #3229 * #3230 * #3231 * #3232 * #3233 * #3234 * #3235 * #3236 * #3237 * #3238 * #3239 * #3240 * #3241 * #3242 * #3243 * #3244 * #3246 * #3247 * #3248 * #3250 * #3251 * #3252 * #3253 * #3254 * #3255 * #3256 * #3257 * #3258 * #3259 * #3260 * #3261 * #3262 * #3263 * #3265 * #3266 * #3267 * #3268 * #3269 * #3270 * #3271 * #3272 * #3273 * #3274 * #3275 * #3276 * #3277 * #3278 * #3279 * #3280 * #3281 * #3282 * #3283 * #3284 * #3285 * #3286 * #3287 * #3288 * #3289 * #3290 * #3291
Problem
Solution
Changes to the backend
The backend did not allow to explicitly remove a package. In the old version of Agama, that information was in libzypp only. We needed to extend the backend to support this case too.
However, two more things are missing:
Both issues can be fixed later.
Testing
Follow-up