Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 344655 - eselect news module: Sort news items by their (reverse?) date
Summary: eselect news module: Sort news items by their (reverse?) date
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: eselect (show other bugs)
Hardware: x86 Linux
: High enhancement (vote)
Assignee: Gentoo eselect Team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2010-11-08 09:27 UTC by Sergey S. Starikoff
Modified: 2010-11-21 14:10 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
patch for news.eselect (news.eselect.diff,1.29 KB, patch)
2010-11-10 23:05 UTC, Ulrich Müller
Details | Diff
patch for news.eselect (news.eselect.diff,842 bytes, patch)
2010-11-11 07:04 UTC, Ulrich Müller
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey S. Starikoff 2010-11-08 09:27:05 UTC
eselect news list show item sorting first by status (unread before read) and after that by date in front order (first received is the first displayed one).

I think it will be better to change this behaviour in the following way:
1. Sort only by date;
2. Display items with back-sorting (last received is always first displaywed one).

Reproducible: Always

Steps to Reproduce:
1. # eselect news list
News items:
  [1]   unread  2010-10-22  Perl 5.12 upgrade procedure
  [2]   read    2009-04-06  Migration to X.org Server 1.5
  [3]   read    2009-04-18  Generation 1 Java Setup Deprecated
  [4]   read    2009-07-12  xorg-x11-7.4 and xorg-server-1.5 kernel support
  [5]   read    2009-09-27  Qt 4.5.2 default USE flag changes
  [6]   read    2009-10-02  Migration to X.org Server 1.6 and libxcb 1.4
  [7]   read    2010-01-31  Removal of libGL.la
  [8]   read    2010-08-01  --as-needed enabled in default profiles
  [9]   read    2010-03-25  Python 3.1
2. eselect news read 1
... (skipped) ...
3. # eselect news list
News items:
  [1]   read    2009-04-06  Migration to X.org Server 1.5
  [2]   read    2009-04-18  Generation 1 Java Setup Deprecated
  [3]   read    2009-07-12  xorg-x11-7.4 and xorg-server-1.5 kernel support
  [4]   read    2009-09-27  Qt 4.5.2 default USE flag changes
  [5]   read    2009-10-02  Migration to X.org Server 1.6 and libxcb 1.4
  [6]   read    2010-01-31  Removal of libGL.la
  [7]   read    2010-08-01  --as-needed enabled in default profiles
  [8]   read    2010-03-25  Python 3.1
  [9]   read    2010-10-22  Perl 5.12 upgrade procedure


Actual Results:  
The first one after read becomes the last one with following change numbers of the rest items.

Expected Results:  
1. # eselect news list
News items:
  [1]   unread  2010-10-22  Perl 5.12 upgrade procedure
  [2]   read    2010-03-25  Python 3.1
  [3]   read    2010-08-01  --as-needed enabled in default profiles
  [4]   read    2010-01-31  Removal of libGL.la
  [5]   read    2009-10-02  Migration to X.org Server 1.6 and libxcb 1.4
  [6]   read    2009-09-27  Qt 4.5.2 default USE flag changes
  [7]   read    2009-07-12  xorg-x11-7.4 and xorg-server-1.5 kernel support
  [8]   read    2009-04-18  Generation 1 Java Setup Deprecated
  [9]   read    2009-04-06  Migration to X.org Server 1.5
2. eselect news read 1
... (skipped) ...
3. # eselect news list
News items:
  [1]   read  2010-10-22  Perl 5.12 upgrade procedure
  [2]   read    2010-03-25  Python 3.1
  [3]   read    2010-08-01  --as-needed enabled in default profiles
  [4]   read    2010-01-31  Removal of libGL.la
  [5]   read    2009-10-02  Migration to X.org Server 1.6 and libxcb 1.4
  [6]   read    2009-09-27  Qt 4.5.2 default USE flag changes
  [7]   read    2009-07-12  xorg-x11-7.4 and xorg-server-1.5 kernel support
  [8]   read    2009-04-18  Generation 1 Java Setup Deprecated
  [9]   read    2009-04-06  Migration to X.org Server 1.5

$ emerge --info
Portage 2.1.8.3 (default/linux/x86/10.0, gcc-4.4.4, glibc-2.11.2-r3, 2.6.35-gentoo-r4 i686)
=================================================================
System uname: Linux-2.6.35-gentoo-r4-i686-Intel-R-_Pentium-R-_4_CPU_3.00GHz-with-gentoo-1.12.14
Timestamp of tree: Mon, 08 Nov 2010 04:15:03 +0000
app-shells/bash:     4.1_p7
dev-java/java-config: 2.1.11
dev-lang/python:     2.6.5-r3, 3.1.2-r4
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 1.12.14-r1
sys-apps/sandbox:    2.3-r1
sys-devel/autoconf:  2.13, 2.65-r1
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.4.4-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/env.d/50glib2 /usr/share/X11/xkb /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests buildsyspkg collision-protect distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp.corbina.net/pub/Linux/gentoo/                   ftp://mirror.aiya.ru/pub/gentoo/                 ftp://ftp.org.kemsu.ru/gentoo/                 http://ftp.chg.ru/pub/Linux/distributions/gentoo/                 ftp://ftp.chg.ru/pub/Linux/distributions/gentoo/"
LANG="ru_RU.KOI8-R"
LC_ALL=""
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="ru en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage-ftn"
SYNC="   rsync://rsync.ru.gentoo.org/gentoo-portage"
USE="X a52 ac3 acl alsa avi berkdb bzip2 cdr cli cracklib crypt cups cxx dbus djvu dri dvd flac fortran gdbm gif gtk iconv jpeg jpeg2k modules mp3 mudflap ncurses nls nptl nptlonly ogg openmp pam pcre pdf perl png pppd python qt3support readline session ssl sysfs tcpd tiff vorbis x86 xcb xorg xulrunner zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru en" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="sis" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Ulrich Müller gentoo-dev 2010-11-10 14:48:01 UTC
Looks like an option like --sort=date could be useful here.
A patch would be most welcome. ;-)
Comment 2 Ulrich Müller gentoo-dev 2010-11-10 23:05:43 UTC
Created attachment 253929 [details, diff]
patch for news.eselect

That was easier than I thought. Can you try attached patch please?

It's being sorted by date now, but in forward order. Why do you think that reverse order would be better?
Comment 3 Ulrich Müller gentoo-dev 2010-11-11 07:04:28 UTC
Created attachment 253955 [details, diff]
patch for news.eselect

Updated patch, use sort(1) for better efficiency.
Comment 4 Sergey S. Starikoff 2010-11-12 10:25:01 UTC
(In reply to comment #2)
> That was easier than I thought. Can you try attached patch please?
Excuse me, currently I can't check the patch.
I'll do it as soon, as it will be possible.

> It's being sorted by date now, but in forward order. Why do you think that
> reverse order would be better?
> 
When I wrote it, I thought first of all about usability:
In this case the last news item could be received by the same command:
$ eselect news read 1
Independently on number of news items stored and time.
Comment 5 Ulrich Müller gentoo-dev 2010-11-12 13:16:42 UTC
In SVN: <http://sources.gentoo.org/cgi-bin/viewvc.cgi/eselect?view=revision&revision=780>

(In reply to comment #4)
> > It's being sorted by date now, but in forward order. Why do you think that
> > reverse order would be better?
>
> When I wrote it, I thought first of all about usability:
> In this case the last news item could be received by the same command:
> $ eselect news read 1
> Independently on number of news items stored and time.

I'm well aware of the fact that some newsreaders sort messages in reverse order, while others use forward order. This is mainly a matter of personal taste.

I prefer the forward ordering: If the user specifies ascending numbers for the "read" action (e.g. "eselect news read 1 2 3") he will then get the messages in the sequence in which they were posted.

Best would be to make it configurable, but we don't have a config file for eselect yet.
Comment 6 Ulrich Müller gentoo-dev 2010-11-21 14:10:16 UTC
Fixed in eselect-1.2.12.
Thank you for bringing this up.