Re: [PATCH RFC 0/6] Produce ABI guide without escaping ReST source files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Fri, 21 Jun 2019 10:04:41 -0300
Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx> escreveu:

> Em Fri, 21 Jun 2019 09:39:15 -0300
> Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx> escreveu:
> 
> > Em Fri, 21 Jun 2019 09:32:00 -0300
> > Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx> escreveu:
> >   
> > > Hi Greg,
> > > 
> > > As you proposed to give it a try on removing the escape code from the
> > > script which parses the ReST file, I changed a few things there,
> > > adding the capability of selectively enabling to output an ABI sub-dir
> > > without escaping things that would crash Sphinx.
> > > 
> > > PS.: As for now this is just a RFC, I'm not getting the ABI file
> > > maintainers, copying just LKML, linux-doc ML, plus you and Jon.
> > > 
> > > I also manually fixed the contents of ABI/stable, in order for it to
> > > pass without causing troubles.
> > > 
> > > I added all patches from ABI and features at this branch:
> > > 
> > > 	https://git.linuxtv.org/mchehab/experimental.git/log/?h=abi_patches_v4.1
> > > 
> > > The html output is at https://www.infradead.org/~mchehab/rst_features/,
> > > and you can see the resulting ABI guide on:
> > > 
> > > 	https://www.infradead.org/~mchehab/rst_features/admin-guide/abi.html
> > > 
> > > No Sphinx crashes/warnings happen when building it.
> > > 
> > > That's my personal notes about such work:
> > > 
> > > 1) Documentation/ABI/stable/sysfs-class-infiniband
> > > 
> > > It had some title captions inside it, like:
> > > 
> > > 	Errors info:
> > >                 -----------
> > > 
> > > For one of the "What:"
> > > 
> > > Sphinx is really pick with title markups. As the entire Documentation/stable is
> > > parsed as if it were a single document, there should be a coherency on what
> > > character is used to markup a level-one title. I mean, if one document uses:
> > > 
> > > foo
> > > ----
> > > 
> > > For the first level, all other documents should use "---...-" as well.
> > > 
> > > The alternative would be to have one entry for every single file at
> > > Documentation/admin-guide/abi-*.rst, with, IMHO, it would be a lot
> > > harder to maintain.
> > > 
> > > So, the best seems to let clear at ABI/README about how titles/subtitles
> > > should be used inside files, if any.
> > > 
> > > 2) Some documents there use a "Values:" tag, with is not defined as a
> > > valid one at ABI/README. The script handles it as part of the description,
> > > so no harm done;
> > > 
> > > 3) Among the 47 files under ABI/stable, 14 of them names the file
> > > contents, using a valid ReST markup for the document title. That is shown
> > > at the index at:
> > > 
> > > 	https://www.infradead.org/~mchehab/rst_features/admin-guide/abi.html
> > > 
> > > 
> > > - ABI stable symbols
> > > 
> > >   -  sysfs interface for Mellanox ConnectX HCA IB driver (mlx4)
> > >   -  sysfs interface for Intel IB driver qib
> > >   -  sysfs interface for Intel(R) X722 iWARP i40iw driver
> > >   -  sysfs interface for QLogic qedr NIC Driver
> > >   -  sysfs interface for NetEffect RNIC Low-Level iWARP driver (nes)
> > >   -  sysfs interface for Cisco VIC (usNIC) Verbs Driver
> > >   -  sysfs interface for Chelsio T3 RDMA Driver (cxgb3)
> > >   -  sysfs interface for Chelsio T4/T5 RDMA driver (cxgb4)
> > >   -  sysfs interface for Intel Omni-Path driver (HFI1)
> > >   -  sysfs interface for VMware Paravirtual RDMA driver
> > >   -  sysfs interface for Mellanox Connect-IB HCA driver mlx5
> > >   -  sysfs interface for Emulex RoCE HCA Driver
> > >   -  sysfs interface for Broadcom NetXtreme-E RoCE driver
> > >   -  sysfs interface for Mellanox IB HCA low-level driver (mthca)
> > > 
> > > I liked that, but ideally all ABI files should either use it or not.
> > > 
> > > 4) I was expecting to have troubles with asterisk characters inside the
> > > ABI files. That was not the case: I had to escape just one occurrence on
> > > a single file of the 47 ones inside ABI/stable. 
> > > 
> > > -
> > > 
> > > My conclusion from this experiment is that it is worth cleaning the ABI
> > > files for them to be parsed without needing to escape non-ReST compliant
> > > parts of the ABI file.
> > > 
> > > Perhaps we could keep rst-compliant the stable, obsolete and removed
> > > directories only, and gradually moving stuff from ABI/testing to ABI/stable,
> > > while fixing them to be rst-compliant.    
> > 
> > Btw, adding :rst: to kernel-abi markup at abi-obsolete.rst and 
> > abi-removed.rst produced just two warnings:
> > 
> > get_abi.pl rest --dir $srctree/Documentation/ABI/obsolete --rst-source:1689: ERROR: Unexpected indentation.
> > get_abi.pl rest --dir $srctree/Documentation/ABI/obsolete --rst-source:1692: WARNING: Block quote ends without a blank line; unexpected unindent.
> > 
> > I'll fix those too at my repository.
> > 
> > I suspect, however, that Documentation/ABI/testing with its 353 files will
> > require a lot more care.  
> 
> Disabling the escaping logic for ABI/testing won't cause crashes with Sphinx
> 1.4.9 (it will probably cause more harm on newer versions), but will require 
> a lot care, as it introduces 248 new errors/warnings:

And they come from 71 different files (list enclosed). I didn't look on them,
and I'll stop handling here for now, as I need to handle some other stuff.

Yet, manually fixing those 71 ABI files doesn't sound a too hard work. It
can probably be done on a single day.

So, I suspect we could enable :rst: and manually fix those.

Regards,
Mauro

-

Files that have issues when assuming that they're ReST friendly:

    configfs-spear-pcie-gadget
    configfs-usb-gadget
    configfs-usb-gadget-hid
    configfs-usb-gadget-rndis
    configfs-usb-gadget-uac1
    configfs-usb-gadget-uvc
    debugfs-ec
    debugfs-pktcdvd
    dev-kmsg
    evm
    ima_policy
    procfs-diskstats
    sysfs-block
    sysfs-block-device
    sysfs-bus-acpi
    sysfs-bus-event_source-devices-format
    sysfs-bus-i2c-devices-pca954x
    sysfs-bus-iio
    sysfs-bus-iio-adc-envelope-detector
    sysfs-bus-iio-cros-ec
    sysfs-bus-iio-dfsdm-adc-stm32
    sysfs-bus-iio-lptimer-stm32
    sysfs-bus-iio-magnetometer-hmc5843
    sysfs-bus-iio-temperature-max31856
    sysfs-bus-iio-timer-stm32
    sysfs-bus-intel_th-devices-msc
    sysfs-bus-rapidio
    sysfs-bus-thunderbolt
    sysfs-bus-usb
    sysfs-bus-usb-devices-usbsevseg
    sysfs-bus-vfio-mdev
    sysfs-class-cxl
    sysfs-class-led
    sysfs-class-mic.txt
    sysfs-class-ocxl
    sysfs-class-power
    sysfs-class-power-twl4030
    sysfs-class-rc
    sysfs-class-scsi_host
    sysfs-class-typec
    sysfs-devices-platform-ACPI-TAD
    sysfs-devices-platform-docg3
    sysfs-devices-platform-sh_mobile_lcdc_fb
    sysfs-devices-system-cpu
    sysfs-devices-system-ibm-rtl
    sysfs-driver-bd9571mwv-regulator
    sysfs-driver-genwqe
    sysfs-driver-hid-logitech-lg4ff
    sysfs-driver-hid-wiimote
    sysfs-driver-samsung-laptop
    sysfs-driver-toshiba_acpi
    sysfs-driver-toshiba_haps
    sysfs-driver-wacom
    sysfs-firmware-acpi
    sysfs-firmware-dmi-entries
    sysfs-firmware-gsmi
    sysfs-firmware-memmap
    sysfs-fs-ext4
    sysfs-hypervisor-xen
    sysfs-kernel-boot_params
    sysfs-kernel-mm-hugepages
    sysfs-platform-asus-laptop
    sysfs-platform-asus-wmi
    sysfs-platform-at91
    sysfs-platform-eeepc-laptop
    sysfs-platform-ideapad-laptop
    sysfs-platform-intel-wmi-thunderbolt
    sysfs-platform-sst-atom
    sysfs-platform-usbip-vudc
    sysfs-ptp
    sysfs-uevent

Thanks,
Mauro



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux